webpackJsonp([1],{12:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(23),a=n(55),s=n(84),l=n(39),u=function(e){function LiveDataService(t){var n=e.call(this,t)||this;return n.http=t,n.liveXMLUrl="/title/live",n.stop=!1,n.errors.subscribe(function(e){"get"===e.method&&"liveInfo"===e.request&&404===e.error.status&&(n.stop||n.createLiveInfoCache()),"post"===e.method&&"liveInfo"===e.request&&(n.stop=!0)},function(e){return console.log(n,e)}),n}return __extends(LiveDataService,e),LiveDataService.prototype.createLiveInfoCache=function(){var e=this;this.refreshing.next({method:"get",request:"liveXML",busy:!0}),this.http.get(this.liveXMLUrl).map(function(e){return e.text()}).finally(function(){return e.refreshing.next({method:"get",request:"liveXML",busy:!1})}).subscribe(function(t){var n=new r.URLSearchParams;n.append("liveinfo",JSON.stringify((new l.LiveInfo).importXml(t))),e.await("post","liveInfo",n).subscribe(function(){return e.refresh("get","liveInfo")},function(t){return e.errors.next(new s.DataServiceError("post","liveInfo",t))})},function(t){return e.errors.next(new s.DataServiceError("get","liveXML",t))})},LiveDataService=__decorate([i.Injectable(),__metadata("design:paramtypes",[o.AuthHttp])],LiveDataService)}(a.DataService);t.LiveDataService=u},19:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function Loader(){this._load=0}return Object.defineProperty(Loader.prototype,"loading",{get:function(){return this._load>0},set:function(e){this._load+=e?1:this._load>0?-1:0},enumerable:!0,configurable:!0}),Loader}();t.Loader=i},210:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(18),o=n(219),a=n(11),s=n(218),l=n(79),u=n(221),c=n(81),d=n(11),p=n(230),h=n(229),f=n(228),y=n(226),m=n(237),g=n(236),v=n(235),b=n(86),w=n(85),A=n(89),C=n(92),_=n(83),S=n(87),T=n(88),x=n(227),D=n(90),E=n(55),I=n(54),M=n(12),P=n(25),k=n(82),F=n(245),O=n(246),N=n(243),R=n(244),V=n(241),B=n(238),L=n(239),j=n(248),U=n(56),G=n(251),q=n(233),z=n(232),H=n(234),W=n(231),X=n(247),K=[D.ApiService,E.DataService,I.DataCacheService,M.LiveDataService,P.AuthenticationService,k.AuthenticationGuard],Y=(u.fakeBackendProvider,c.MockBackend,d.BaseRequestOptions,function(){function AppModule(e){this.appRef=e}return AppModule.prototype.hmrOnInit=function(e){console.log("HMR store",e)},AppModule.prototype.hmrOnDestroy=function(e){var t=this.appRef.components.map(function(e){return e.location.nativeElement});e.disposeOldHosts=l.createNewHosts(t),l.removeNgStyles()},AppModule.prototype.hmrAfterDestroy=function(e){e.disposeOldHosts(),delete e.disposeOldHosts},AppModule=__decorate([i.NgModule({imports:[p.AuthenticationModule,r.BrowserModule,o.BrowserAnimationsModule,a.HttpModule,s.FormsModule,x.routing],declarations:[y.AppComponent,m.MenuComponent,g.LiveInfoComponent,v.LiveBackgroundComponent,b.HomeComponent,w.DetailsComponent,A.ScreencapturesComponent,C.UsersComponent,_.ConsoleComponent,S.LauncherComponent,T.LoginComponent,h.AuthenticatedSrcDirective,f.AuthenticatedBackgroundDirective,X.ScrollIntoViewDirective,F.ReadablePathPipe,O.ReadableSizePipe,N.IsoTimestampPipe,R.ObjectKeysPipe,V.ProfileFilterPipe,B.MultiDiscEntryLimitPipe,L.PluginReadableFeaturePipe,j.SMCReadableInfoPipe,U.TemperatureConverterPipe,G.TemperaturePercentagePipe,q.DashLaunchReadableName,z.DashLaunchReadableCategory,H.DashLaunchReadableValue,W.DashLaunchCategoryFilterPipe],providers:K.slice(),bootstrap:[y.AppComponent]}),__metadata("design:paramtypes",[i.ApplicationRef])],AppModule)}());t.AppModule=Y},215:function(e,t,n){"use strict";/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function optimizeGroupPlayer(e){switch(e.length){case 0:return new r.NoopAnimationPlayer;case 1:return e[0];default:return new r["ɵAnimationGroupPlayer"](e)}}function normalizeKeyframes(e,t,n,i,o,a){void 0===o&&(o={}),void 0===a&&(a={});var s=[],l=[],u=-1,c=null;if(i.forEach(function(e){var n=e.offset,i=n==u,d=i&&c||{};Object.keys(e).forEach(function(n){var i=n,l=e[n];if("offset"!==n)switch(i=t.normalizePropertyName(i,s),l){case r["ɵPRE_STYLE"]:l=o[n];break;case r.AUTO_STYLE:l=a[n];break;default:l=t.normalizeStyleValue(n,i,l,s)}d[i]=l}),i||l.push(d),c=d,u=n}),s.length){var d="\n - ";throw new Error("Unable to animate due to the following errors:"+d+s.join(d))}return l}function listenOnPlayer(e,t,n,i){switch(t){case"start":e.onStart(function(){return i(n&&copyAnimationEvent(n,"start",e.totalTime))});break;case"done":e.onDone(function(){return i(n&&copyAnimationEvent(n,"done",e.totalTime))});break;case"destroy":e.onDestroy(function(){return i(n&&copyAnimationEvent(n,"destroy",e.totalTime))})}}function copyAnimationEvent(e,t,n){var i=makeAnimationEvent(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,void 0==n?e.totalTime:n),r=e._data;return null!=r&&(i._data=r),i}function makeAnimationEvent(e,t,n,i,r,o){return void 0===r&&(r=""),void 0===o&&(o=0),{element:e,triggerName:t,fromState:n,toState:i,phaseName:r,totalTime:o}}function getOrSetAsInMap(e,t,n){var i;return e instanceof Map?(i=e.get(t))||e.set(t,i=n):(i=e[t])||(i=e[t]=n),i}function parseTimelineCommand(e){var t=e.indexOf(":");return[e.substring(1,t),e.substr(t+1)]}function resolveTimingValue(e){if("number"==typeof e)return e;var t=e.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:_convertTimeValueToMS(parseFloat(t[1]),t[2])}function _convertTimeValueToMS(e,t){switch(t){case"s":return e*y;default:return e}}function resolveTiming(e,t,n){return e.hasOwnProperty("duration")?e:parseTimeExpression(e,t,n)}function parseTimeExpression(e,t,n){var i,r=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,o=0,a="";if("string"==typeof e){var s=e.match(r);if(null===s)return t.push('The provided timing value "'+e+'" is invalid.'),{duration:0,delay:0,easing:""};i=_convertTimeValueToMS(parseFloat(s[1]),s[2]);var l=s[3];null!=l&&(o=_convertTimeValueToMS(Math.floor(parseFloat(l)),s[4]));var u=s[5];u&&(a=u)}else i=e;if(!n){var c=!1,d=t.length;i<0&&(t.push("Duration values below 0 are not allowed for this animation step."),c=!0),o<0&&(t.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&t.splice(d,0,'The provided timing value "'+e+'" is invalid.')}return{duration:i,delay:o,easing:a}}function copyObj(e,t){return void 0===t&&(t={}),Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function normalizeStyles(e){var t={};return Array.isArray(e)?e.forEach(function(e){return copyStyles(e,!1,t)}):copyStyles(e,!1,t),t}function copyStyles(e,t,n){if(void 0===n&&(n={}),t)for(var i in e)n[i]=e[i];else copyObj(e,n);return n}function setStyles(e,t){e.style&&Object.keys(t).forEach(function(n){var i=dashCaseToCamelCase(n);e.style[i]=t[n]})}function eraseStyles(e,t){e.style&&Object.keys(t).forEach(function(t){var n=dashCaseToCamelCase(t);e.style[n]=""})}function normalizeAnimationEntry(e){return Array.isArray(e)?1==e.length?e[0]:n.i(r.sequence)(e):e}function validateStyleParams(e,t,n){var i=t.params||{},r=extractStyleParams(e);r.length&&r.forEach(function(e){i.hasOwnProperty(e)||n.push("Unable to resolve the local animation param "+e+" in the given list of values")})}function extractStyleParams(e){var t=[];if("string"==typeof e){for(var n=e.toString(),i=void 0;i=x.exec(n);)t.push(i[1]);x.lastIndex=0}return t}function interpolateParams(e,t,n){var i=e.toString(),r=i.replace(x,function(e,i){var r=t[i];return t.hasOwnProperty(i)||(n.push("Please provide a value for the animation param "+i),r=""),r.toString()});return r==i?e:r}function iteratorToArray(e){for(var t=[],n=e.next();!n.done;)t.push(n.value),n=e.next();return t}function dashCaseToCamelCase(e){return e.replace(D,function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1].toUpperCase()})}function allowPreviousPlayerStylesMerge(e,t){return 0===e||0===t}function visitDslNode(e,t,n){switch(t.type){case 7:return e.visitTrigger(t,n);case 0:return e.visitState(t,n);case 1:return e.visitTransition(t,n);case 2:return e.visitSequence(t,n);case 3:return e.visitGroup(t,n);case 4:return e.visitAnimate(t,n);case 5:return e.visitKeyframes(t,n);case 6:return e.visitStyle(t,n);case 8:return e.visitReference(t,n);case 9:return e.visitAnimateChild(t,n);case 10:return e.visitAnimateRef(t,n);case 11:return e.visitQuery(t,n);case 12:return e.visitStagger(t,n);default:throw new Error("Unable to resolve animation metadata node #"+t.type)}}function parseTransitionExpr(e,t){var n=[];return"string"==typeof e?e.split(/\s*,\s*/).forEach(function(e){return parseInnerTransitionStr(e,n,t)}):n.push(e),n}function parseInnerTransitionStr(e,t,n){":"==e[0]&&(e=parseAnimationAlias(e,n));var i=e.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push('The provided transition expression "'+e+'" is not supported'),t;var r=i[1],o=i[2],a=i[3];t.push(makeLambdaFromStates(r,a));var s=r==E&&a==E;"<"!=o[0]||s||t.push(makeLambdaFromStates(a,r))}function parseAnimationAlias(e,t){switch(e){case":enter":return"void => *";case":leave":return"* => void";default:return t.push('The transition alias value "'+e+'" is not supported'),"* => *"}}function makeLambdaFromStates(e,t){var n=I.has(e)||M.has(e),i=I.has(t)||M.has(t);return function(r,o){var a=e==E||e==r,s=t==E||t==o;return!a&&n&&"boolean"==typeof r&&(a=r?I.has(e):M.has(e)),!s&&i&&"boolean"==typeof o&&(s=o?I.has(t):M.has(t)),a&&s}}function buildAnimationAst(e,t){return(new B).build(e,t)}function normalizeSelector(e){var t=!!e.split(/\s*,\s*/).find(function(e){return e==P});return t&&(e=e.replace(k,"")),e=e.replace(R,w).replace(O,A).replace(/@\*/g,_).replace(/@\w+/g,function(e){return _+"-"+e.substr(1)}).replace(/:animating/g,T),[e,t]}function normalizeParams(e){return e?copyObj(e):null}function consumeOffset(e){if("string"==typeof e)return null;var t=null;if(Array.isArray(e))e.forEach(function(e){if(isObject(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}});else if(isObject(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}return t}function isObject(e){return!Array.isArray(e)&&"object"==typeof e}function constructTimingAst(e,t){var n=null;if(e.hasOwnProperty("duration"))n=e;else if("number"==typeof e){var i=resolveTiming(e,t).duration;return makeTimingAst(i,0,"")}var r=e;if(r.split(/\s+/).some(function(e){return"{"==e.charAt(0)&&"{"==e.charAt(1)})){var o=makeTimingAst(0,0,"");return o.dynamic=!0,o.strValue=r,o}return n=n||resolveTiming(r,t),makeTimingAst(n.duration,n.delay,n.easing)}function normalizeAnimationOptions(e){return e?(e=copyObj(e),e.params&&(e.params=normalizeParams(e.params))):e={},e}function makeTimingAst(e,t,n){return{duration:e,delay:t,easing:n}}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function createTimelineInstruction(e,t,n,i,r,o,a,s){return void 0===a&&(a=null),void 0===s&&(s=!1),{type:1,element:e,keyframes:t,preStyleProps:n,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:a,subTimeline:s}}function buildAnimationTimelines(e,t,n,i,r,o,a,s){return void 0===i&&(i={}),void 0===r&&(r={}),void 0===s&&(s=[]),(new G).buildKeyframes(e,t,n,i,r,o,a,s)}function roundOffset(e,t){void 0===t&&(t=3);var n=Math.pow(10,t-1);return Math.round(e*n)/n}function flattenStyles(e,t){var n,i={};return e.forEach(function(e){"*"===e?(n=n||Object.keys(t),n.forEach(function(e){i[e]=r.AUTO_STYLE})):copyStyles(e,!1,i)}),i}function makeBooleanMap(e){var t={};return e.forEach(function(e){return t[e]=!0}),t}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function createTransitionInstruction(e,t,n,i,r,o,a,s,l,u,c,d){return{type:0,element:e,triggerName:t,isRemovalTransition:r,fromState:n,fromStyles:o,toState:i,toStyles:a,timelines:s,queriedElements:l,preStyleProps:u,postStyleProps:c,errors:d}}function oneOrMoreTransitionsMatch(e,t,n){return e.some(function(e){return e(t,n)})}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function buildTrigger(e,t){return new $(e,t)}function createFallbackTransition(e,t){return new Z(e,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(e,t){return!0}],options:null,queryCount:0,depCount:0},t)}function balanceProperties(e,t,n){e.hasOwnProperty(t)?e.hasOwnProperty(n)||(e[n]=e[t]):e.hasOwnProperty(n)&&(e[t]=e[n])}function deleteOrUnsetInMap(e,t,n){var i;if(e instanceof Map){if(i=e.get(t)){if(i.length){var r=i.indexOf(n);i.splice(r,1)}0==i.length&&e.delete(t)}}else if(i=e[t]){if(i.length){var r=i.indexOf(n);i.splice(r,1)}0==i.length&&delete e[t]}return i}function normalizeTriggerValue(e){return null!=e?e:null}function isElementNode(e){return e&&1===e.nodeType}function isTriggerEventValid(e){return"start"==e||"done"==e}function cloakElement(e,t){var n=e.style.display;return e.style.display=null!=t?t:"none",n}function cloakAndComputeStyles(e,t,n,i){var r=[];t.forEach(function(e){return r.push(cloakElement(e))});var o=new Map,a=[];n.forEach(function(t,n){var r={};t.forEach(function(t){var o=r[t]=e.computeStyle(n,t,i);o&&0!=o.length||(n[ue]=le,a.push(n))}),o.set(n,r)});var s=0;return t.forEach(function(e){return cloakElement(e,r[s++])}),[o,a]}function createIsRootFilterFn(e){var t,n=new Set(e),i=new Set;return t=function(e){return!e||!n.has(e.parentNode)&&(!!i.has(e.parentNode)||!!t(e.parentNode)&&(i.add(e),!0))}}function containsClass(e,t){if(e.classList)return e.classList.contains(t);var n=e[ge];return n&&n[t]}function addClass(e,t){if(e.classList)e.classList.add(t);else{var n=e[ge];n||(n=e[ge]={}),n[t]=!0}}function removeClass(e,t){if(e.classList)e.classList.remove(t);else{var n=e[ge];n&&delete n[t]}}function getBodyNode(){return"undefined"!=typeof document?document.body:null}function removeNodesAfterAnimationDone(e,t,n){optimizeGroupPlayer(n).onDone(function(){return e.processLeaveNode(t)})}function flattenGroupPlayers(e){var t=[];return _flattenGroupPlayersRecur(e,t),t}function _flattenGroupPlayersRecur(e,t){for(var n=0;n<e.length;n++){var i=e[n];i instanceof r["ɵAnimationGroupPlayer"]?_flattenGroupPlayersRecur(i.players,t):t.push(i)}}function objEquals(e,t){var n=Object.keys(e),i=Object.keys(t);if(n.length!=i.length)return!1;for(var r=0;r<n.length;r++){var o=n[r];if(!t.hasOwnProperty(o)||e[o]!==t[o])return!1}return!0}function replacePostStylesAsPre(e,t,n){var i=n.get(e);if(!i)return!1;var r=t.get(e);return r?i.forEach(function(e){return r.add(e)}):t.set(e,i),n.delete(e),!0}function _computeStyle(e,t){return window.getComputedStyle(e)[t]}function supportsWebAnimations(){return"undefined"!=typeof Element&&"function"==typeof Element.prototype.animate}var i=n(216),r=n(52);n.d(t,"b",function(){return f}),n.d(t,"c",function(){return X}),n.d(t,"g",function(){return K}),n.d(t,"f",function(){return h}),n.d(t,"a",function(){return ve}),n.d(t,"e",function(){return we}),n.d(t,"d",function(){return supportsWebAnimations});var o=function(e,t){return!1},a=function(e,t){return!1},s=function(e,t,n){return[]};if("undefined"!=typeof Element){if(o=function(e,t){return e.contains(t)},Element.prototype.matches)a=function(e,t){return e.matches(t)};else{var l=Element.prototype,u=l.matchesSelector||l.mozMatchesSelector||l.msMatchesSelector||l.oMatchesSelector||l.webkitMatchesSelector;u&&(a=function(e,t){return u.apply(e,[t])})}s=function(e,t,n){var i=[];if(n)i.push.apply(i,e.querySelectorAll(t));else{var r=e.querySelector(t);r&&i.push(r)}return i}}var c=a,d=o,p=s,h=function(){function NoopAnimationDriver(){}return NoopAnimationDriver.prototype.matchesElement=function(e,t){return c(e,t)},NoopAnimationDriver.prototype.containsElement=function(e,t){return d(e,t)},NoopAnimationDriver.prototype.query=function(e,t,n){return p(e,t,n)},NoopAnimationDriver.prototype.computeStyle=function(e,t,n){return n||""},NoopAnimationDriver.prototype.animate=function(e,t,n,i,o,a){return void 0===a&&(a=[]),new r.NoopAnimationPlayer},NoopAnimationDriver}(),f=function(){function AnimationDriver(){}return AnimationDriver}();f.NOOP=new h;/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var y=1e3,m="{{",g="}}",v="ng-enter",b="ng-leave",w=".ng-enter",A=".ng-leave",C="ng-trigger",_=".ng-trigger",S="ng-animating",T=".ng-animating",x=new RegExp(m+"\\s*(.+?)\\s*"+g,"g"),D=/-+([a-z0-9])/g,E="*",I=new Set;I.add("true"),I.add("1");var M=new Set;M.add("false"),M.add("0");/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var P=":self",k=new RegExp("s*"+P+"s*,?","g"),F=":leave",O=new RegExp(F,"g"),N=":enter",R=new RegExp(N,"g"),V="",B=function(){function AnimationAstBuilderVisitor(){}return AnimationAstBuilderVisitor.prototype.build=function(e,t){var n=new L(t);return this._resetContextStyleTimingState(n),visitDslNode(this,normalizeAnimationEntry(e),n)},AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState=function(e){e.currentQuerySelector=V,e.collectedStyles={},e.collectedStyles[V]={},e.currentTime=0},AnimationAstBuilderVisitor.prototype.visitTrigger=function(e,t){var n=this,i=t.queryCount=0,r=t.depCount=0,o=[],a=[];return e.definitions.forEach(function(e){if(n._resetContextStyleTimingState(t),0==e.type){var s=e,l=s.name;l.split(/\s*,\s*/).forEach(function(e){s.name=e,o.push(n.visitState(s,t))}),s.name=l}else if(1==e.type){var u=n.visitTransition(e,t);i+=u.queryCount,r+=u.depCount,a.push(u)}else t.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:e.name,states:o,transitions:a,queryCount:i,depCount:r,options:null}},AnimationAstBuilderVisitor.prototype.visitState=function(e,t){var n=this.visitStyle(e.styles,t),i=e.options&&e.options.params||null;if(n.containsDynamicStyles){var r=new Set,o=i||{};if(n.styles.forEach(function(e){if(isObject(e)){var t=e;Object.keys(t).forEach(function(e){extractStyleParams(t[e]).forEach(function(e){o.hasOwnProperty(e)||r.add(e)})})}}),r.size){var a=iteratorToArray(r.values());t.errors.push('state("'+e.name+'", ...) must define default values for all the following style substitutions: '+a.join(", "))}}return{type:0,name:e.name,style:n,options:i?{params:i}:null}},AnimationAstBuilderVisitor.prototype.visitTransition=function(e,t){t.queryCount=0,t.depCount=0;var n=visitDslNode(this,normalizeAnimationEntry(e.animation),t);return{type:1,matchers:parseTransitionExpr(e.expr,t.errors),animation:n,queryCount:t.queryCount,depCount:t.depCount,options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitSequence=function(e,t){var n=this;return{type:2,steps:e.steps.map(function(e){return visitDslNode(n,e,t)}),options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitGroup=function(e,t){var n=this,i=t.currentTime,r=0,o=e.steps.map(function(e){t.currentTime=i;var o=visitDslNode(n,e,t);return r=Math.max(r,t.currentTime),o});return t.currentTime=r,{type:3,steps:o,options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitAnimate=function(e,t){var i=constructTimingAst(e.timings,t.errors);t.currentAnimateTimings=i;var o,a=e.styles?e.styles:n.i(r.style)({});if(5==a.type)o=this.visitKeyframes(a,t);else{var s=e.styles,l=!1;if(!s){l=!0;var u={};i.easing&&(u.easing=i.easing),s=n.i(r.style)(u)}t.currentTime+=i.duration+i.delay;var c=this.visitStyle(s,t);c.isEmptyStep=l,o=c}return t.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}},AnimationAstBuilderVisitor.prototype.visitStyle=function(e,t){var n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n},AnimationAstBuilderVisitor.prototype._makeStyleAst=function(e,t){var n=[];Array.isArray(e.styles)?e.styles.forEach(function(e){"string"==typeof e?e==r.AUTO_STYLE?n.push(e):t.errors.push("The provided style string value "+e+" is not allowed."):n.push(e)}):n.push(e.styles);var i=!1,o=null;return n.forEach(function(e){if(isObject(e)){var t=e,n=t.easing;if(n&&(o=n,delete t.easing),!i)for(var r in t){var a=t[r];if(a.toString().indexOf(m)>=0){i=!0;break}}}}),{type:6,styles:n,easing:o,offset:e.offset,containsDynamicStyles:i,options:null}},AnimationAstBuilderVisitor.prototype._validateStyleAst=function(e,t){var n=t.currentAnimateTimings,i=t.currentTime,r=t.currentTime;n&&r>0&&(r-=n.duration+n.delay),e.styles.forEach(function(e){"string"!=typeof e&&Object.keys(e).forEach(function(n){var o=t.collectedStyles[t.currentQuerySelector],a=o[n],s=!0;a&&(r!=i&&r>=a.startTime&&i<=a.endTime&&(t.errors.push('The CSS property "'+n+'" that exists between the times of "'+a.startTime+'ms" and "'+a.endTime+'ms" is also being animated in a parallel animation between the times of "'+r+'ms" and "'+i+'ms"'),s=!1),r=a.startTime),s&&(o[n]={startTime:r,endTime:i}),t.options&&validateStyleParams(e[n],t.options,t.errors)})})},AnimationAstBuilderVisitor.prototype.visitKeyframes=function(e,t){var n=this,i={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),i;var r=1,o=0,a=[],s=!1,l=!1,u=0,c=e.steps.map(function(e){var i=n._makeStyleAst(e,t),r=null!=i.offset?i.offset:consumeOffset(i.styles),c=0;return null!=r&&(o++,c=i.offset=r),l=l||c<0||c>1,s=s||c<u,u=c,a.push(c),i});l&&t.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),s&&t.errors.push("Please ensure that all keyframe offsets are in order");var d=e.steps.length,p=0;o>0&&o<d?t.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==o&&(p=r/(d-1));var h=d-1,f=t.currentTime,y=t.currentAnimateTimings,m=y.duration;return c.forEach(function(e,r){var o=p>0?r==h?1:p*r:a[r],s=o*m;t.currentTime=f+y.delay+s,y.duration=s,n._validateStyleAst(e,t),e.offset=o,i.styles.push(e)}),i},AnimationAstBuilderVisitor.prototype.visitReference=function(e,t){return{type:8,animation:visitDslNode(this,normalizeAnimationEntry(e.animation),t),options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateChild=function(e,t){return t.depCount++,{type:9,options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateRef=function(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitQuery=function(e,t){var n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;var r=normalizeSelector(e.selector),o=r[0],a=r[1];t.currentQuerySelector=n.length?n+" "+o:o,getOrSetAsInMap(t.collectedStyles,t.currentQuerySelector,{});var s=visitDslNode(this,normalizeAnimationEntry(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:11,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:a,animation:s,originalSelector:e.selector,options:normalizeAnimationOptions(e.options)}},AnimationAstBuilderVisitor.prototype.visitStagger=function(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");var n="full"===e.timings?{duration:0,delay:0,easing:"full"}:resolveTiming(e.timings,t.errors,!0);return{type:12,animation:visitDslNode(this,normalizeAnimationEntry(e.animation),t),timings:n,options:null}},AnimationAstBuilderVisitor}(),L=function(){function AnimationAstBuilderContext(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}return AnimationAstBuilderContext}(),j=function(){function ElementInstructionMap(){this._map=new Map}return ElementInstructionMap.prototype.consume=function(e){var t=this._map.get(e);return t?this._map.delete(e):t=[],t},ElementInstructionMap.prototype.append=function(e,t){var n=this._map.get(e);n||this._map.set(e,n=[]),n.push.apply(n,t)},ElementInstructionMap.prototype.has=function(e){return this._map.has(e)},ElementInstructionMap.prototype.clear=function(){this._map.clear()},ElementInstructionMap}(),U=1,G=function(){function AnimationTimelineBuilderVisitor(){}return AnimationTimelineBuilderVisitor.prototype.buildKeyframes=function(e,t,n,i,r,o,a,s){void 0===s&&(s=[]),a=a||new j;var l=new z(e,t,a,s,[]);l.options=o,l.currentTimeline.setStyles([i],null,l.errors,o),visitDslNode(this,n,l);var u=l.timelines.filter(function(e){return e.containsAnimation()});if(u.length&&Object.keys(r).length){var c=u[u.length-1];c.allowOnlyTimelineStyles()||c.setStyles([r],null,l.errors,o)}return u.length?u.map(function(e){return e.buildKeyframes()}):[createTimelineInstruction(t,[],[],[],0,0,"",!1)]},AnimationTimelineBuilderVisitor.prototype.visitTrigger=function(e,t){},AnimationTimelineBuilderVisitor.prototype.visitState=function(e,t){},AnimationTimelineBuilderVisitor.prototype.visitTransition=function(e,t){},AnimationTimelineBuilderVisitor.prototype.visitAnimateChild=function(e,t){var n=t.subInstructions.consume(t.element);if(n){var i=t.createSubContext(e.options),r=t.currentTimeline.currentTime,o=this._visitSubInstructions(n,i,i.options);r!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitAnimateRef=function(e,t){var n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype._visitSubInstructions=function(e,t,n){var i=t.currentTimeline.currentTime,r=i,o=null!=n.duration?resolveTimingValue(n.duration):null,a=null!=n.delay?resolveTimingValue(n.delay):null;return 0!==o&&e.forEach(function(e){var n=t.appendInstructionToTimeline(e,o,a);r=Math.max(r,n.duration+n.delay)}),r},AnimationTimelineBuilderVisitor.prototype.visitReference=function(e,t){t.updateOptions(e.options,!0),visitDslNode(this,e.animation,t),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitSequence=function(e,t){var n=this,i=t.subContextCount,r=t,o=e.options;if(o&&(o.params||o.delay)&&(r=t.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=q);var a=resolveTimingValue(o.delay);r.delayNextStep(a)}e.steps.length&&(e.steps.forEach(function(e){return visitDslNode(n,e,r)}),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitGroup=function(e,t){var n=this,i=[],r=t.currentTimeline.currentTime,o=e.options&&e.options.delay?resolveTimingValue(e.options.delay):0;e.steps.forEach(function(a){var s=t.createSubContext(e.options);o&&s.delayNextStep(o),visitDslNode(n,a,s),r=Math.max(r,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(function(e){return t.currentTimeline.mergeTimelineCollectedStyles(e)}),t.transformIntoNewTimeline(r),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype._visitTiming=function(e,t){if(e.dynamic){var n=e.strValue;return resolveTiming(t.params?interpolateParams(n,t.params,t.errors):n,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}},AnimationTimelineBuilderVisitor.prototype.visitAnimate=function(e,t){var n=t.currentAnimateTimings=this._visitTiming(e.timings,t),i=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),i.snapshotCurrentStyles());var r=e.style;5==r.type?this.visitKeyframes(r,t):(t.incrementTime(n.duration),this.visitStyle(r,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitStyle=function(e,t){var n=t.currentTimeline,i=t.currentAnimateTimings;!i&&n.getCurrentStyleProperties().length&&n.forwardFrame();var r=i&&i.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(r):n.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitKeyframes=function(e,t){var n=t.currentAnimateTimings,i=t.currentTimeline.duration,r=n.duration,o=t.createSubContext(),a=o.currentTimeline;a.easing=n.easing,e.styles.forEach(function(e){var n=e.offset||0;a.forwardTime(n*r),a.setStyles(e.styles,e.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+r),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitQuery=function(e,t){var n=this,i=t.currentTimeline.currentTime,r=e.options||{},o=r.delay?resolveTimingValue(r.delay):0;o&&(6===t.previousNode.type||0==i&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=q);var a=i,s=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!r.optional,t.errors);t.currentQueryTotal=s.length;var l=null;s.forEach(function(i,r){t.currentQueryIndex=r;var s=t.createSubContext(e.options,i);o&&s.delayNextStep(o),i===t.element&&(l=s.currentTimeline),visitDslNode(n,e.animation,s),s.currentTimeline.applyStylesToKeyframe();var u=s.currentTimeline.currentTime;a=Math.max(a,u)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(a),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e},AnimationTimelineBuilderVisitor.prototype.visitStagger=function(e,t){var n=t.parentContext,i=t.currentTimeline,r=e.timings,o=Math.abs(r.duration),a=o*(t.currentQueryTotal-1),s=o*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":s=a-s;break;case"full":s=n.currentStaggerTime}var l=t.currentTimeline;s&&l.delayNextStep(s);var u=l.currentTime;visitDslNode(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=i.currentTime-u+(i.startTime-n.currentTimeline.startTime)},AnimationTimelineBuilderVisitor}(),q={},z=function(){function AnimationTimelineContext(e,t,n,i,r,o){this._driver=e,this.element=t,this.subInstructions=n,this.errors=i,this.timelines=r,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=q,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=o||new H(t,0),r.push(this.currentTimeline)}return Object.defineProperty(AnimationTimelineContext.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),AnimationTimelineContext.prototype.updateOptions=function(e,t){var n=this;if(e){var i=e,r=this.options;null!=i.duration&&(r.duration=resolveTimingValue(i.duration)),null!=i.delay&&(r.delay=resolveTimingValue(i.delay));var o=i.params;if(o){var a=r.params;a||(a=this.options.params={}),Object.keys(o).forEach(function(e){t&&a.hasOwnProperty(e)||(a[e]=interpolateParams(o[e],a,n.errors))})}}},AnimationTimelineContext.prototype._copyOptions=function(){var e={};if(this.options){var t=this.options.params;if(t){var n=e.params={};Object.keys(t).forEach(function(e){n[e]=t[e]})}}return e},AnimationTimelineContext.prototype.createSubContext=function(e,t,n){void 0===e&&(e=null);var i=t||this.element,r=new AnimationTimelineContext(this._driver,i,this.subInstructions,this.errors,this.timelines,this.currentTimeline.fork(i,n||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r},AnimationTimelineContext.prototype.transformIntoNewTimeline=function(e){return this.previousNode=q,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline},AnimationTimelineContext.prototype.appendInstructionToTimeline=function(e,t,n){var i={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+e.delay,easing:""},r=new W(e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(r),i},AnimationTimelineContext.prototype.incrementTime=function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)},AnimationTimelineContext.prototype.delayNextStep=function(e){e>0&&this.currentTimeline.delayNextStep(e)},AnimationTimelineContext.prototype.invokeQuery=function(e,t,n,i,r,o){var a=[];if(i&&a.push(this.element),e.length>0){var s=1!=n,l=this._driver.query(this.element,e,s);0!==n&&(l=l.slice(0,n)),a.push.apply(a,l)}return r||0!=a.length||o.push('`query("'+t+'")` returned zero elements. (Use `query("'+t+'", { optional: true })` if you wish to allow this.)'),a},AnimationTimelineContext}(),H=function(){function TimelineBuilder(e,t,n){this.element=e,this.startTime=t,this._elementTimelineStylesLookup=n,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}return TimelineBuilder.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},TimelineBuilder.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(TimelineBuilder.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.delayNextStep=function(e){var t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e},TimelineBuilder.prototype.fork=function(e,t){return this.applyStylesToKeyframe(),new TimelineBuilder(e,t||this.currentTime,this._elementTimelineStylesLookup)},TimelineBuilder.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},TimelineBuilder.prototype.forwardFrame=function(){this.duration+=U,this._loadKeyframe()},TimelineBuilder.prototype.forwardTime=function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()},TimelineBuilder.prototype._updateStyle=function(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}},TimelineBuilder.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},TimelineBuilder.prototype.applyEmptyStep=function(e){var t=this;e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach(function(e){t._backFill[e]=t._globalTimelineStyles[e]||r.AUTO_STYLE,t._currentKeyframe[e]=r.AUTO_STYLE}),this._currentEmptyStepKeyframe=this._currentKeyframe},TimelineBuilder.prototype.setStyles=function(e,t,n,i){var o=this;t&&(this._previousKeyframe.easing=t);var a=i&&i.params||{},s=flattenStyles(e,this._globalTimelineStyles);Object.keys(s).forEach(function(e){var t=interpolateParams(s[e],a,n);o._pendingStyles[e]=t,o._localTimelineStyles.hasOwnProperty(e)||(o._backFill[e]=o._globalTimelineStyles.hasOwnProperty(e)?o._globalTimelineStyles[e]:r.AUTO_STYLE),o._updateStyle(e,t)})},TimelineBuilder.prototype.applyStylesToKeyframe=function(){var e=this,t=this._pendingStyles,n=Object.keys(t);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){var i=t[n];e._currentKeyframe[n]=i}),Object.keys(this._localTimelineStyles).forEach(function(t){e._currentKeyframe.hasOwnProperty(t)||(e._currentKeyframe[t]=e._localTimelineStyles[t])}))},TimelineBuilder.prototype.snapshotCurrentStyles=function(){var e=this;Object.keys(this._localTimelineStyles).forEach(function(t){var n=e._localTimelineStyles[t];e._pendingStyles[t]=n,e._updateStyle(t,n)})},TimelineBuilder.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(TimelineBuilder.prototype,"properties",{get:function(){var e=[];for(var t in this._currentKeyframe)e.push(t);return e},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.mergeTimelineCollectedStyles=function(e){var t=this;Object.keys(e._styleSummary).forEach(function(n){var i=t._styleSummary[n],r=e._styleSummary[n];(!i||r.time>i.time)&&t._updateStyle(n,r.value)})},TimelineBuilder.prototype.buildKeyframes=function(){var e=this;this.applyStylesToKeyframe();var t=new Set,n=new Set,i=1===this._keyframes.size&&0===this.duration,o=[];this._keyframes.forEach(function(a,s){var l=copyStyles(a,!0);Object.keys(l).forEach(function(e){var i=l[e];i==r["ɵPRE_STYLE"]?t.add(e):i==r.AUTO_STYLE&&n.add(e)}),i||(l.offset=s/e.duration),o.push(l)});var a=t.size?iteratorToArray(t.values()):[],s=n.size?iteratorToArray(n.values()):[];if(i){var l=o[0],u=copyObj(l);l.offset=0,u.offset=1,o=[l,u]}return createTimelineInstruction(this.element,o,a,s,this.duration,this.startTime,this.easing,!1)},TimelineBuilder}(),W=function(e){function SubTimelineBuilder(t,n,i,r,o,a){void 0===a&&(a=!1);var s=e.call(this,t,o.delay)||this;return s.element=t,s.keyframes=n,s.preStyleProps=i,s.postStyleProps=r,s._stretchStartingKeyframe=a,s.timings={duration:o.duration,delay:o.delay,easing:o.easing},s}return i.a(SubTimelineBuilder,e),SubTimelineBuilder.prototype.containsAnimation=function(){return this.keyframes.length>1},SubTimelineBuilder.prototype.buildKeyframes=function(){var e=this.keyframes,t=this.timings,n=t.delay,i=t.duration,r=t.easing;if(this._stretchStartingKeyframe&&n){var o=[],a=i+n,s=n/a,l=copyStyles(e[0],!1);l.offset=0,o.push(l);var u=copyStyles(e[0],!1);u.offset=roundOffset(s),o.push(u);for(var c=e.length-1,d=1;d<=c;d++){var p=copyStyles(e[d],!1),h=p.offset,f=n+h*i;p.offset=roundOffset(f/a),o.push(p)}i=a,n=0,r="",e=o}return createTimelineInstruction(this.element,e,this.preStyleProps,this.postStyleProps,i,n,r,!0)},SubTimelineBuilder}(H),X=(function(){function Animation(e,t){this._driver=e;var n=[],i=buildAnimationAst(t,n);if(n.length){var r="animation validation failed:\n"+n.join("\n");throw new Error(r)}this._animationAst=i}Animation.prototype.buildTimelines=function(e,t,n,i,r){var o=Array.isArray(t)?normalizeStyles(t):t,a=Array.isArray(n)?normalizeStyles(n):n,s=[];r=r||new j;var l=buildAnimationTimelines(this._driver,e,this._animationAst,o,a,i,r,s);if(s.length){var u="animation building failed:\n"+s.join("\n");throw new Error(u)}return l}}(),function(){function AnimationStyleNormalizer(){}return AnimationStyleNormalizer}()),K=(function(){function NoopAnimationStyleNormalizer(){}NoopAnimationStyleNormalizer.prototype.normalizePropertyName=function(e,t){return e},NoopAnimationStyleNormalizer.prototype.normalizeStyleValue=function(e,t,n,i){return n}}(),function(e){function WebAnimationsStyleNormalizer(){return null!==e&&e.apply(this,arguments)||this}return i.a(WebAnimationsStyleNormalizer,e),WebAnimationsStyleNormalizer.prototype.normalizePropertyName=function(e,t){return dashCaseToCamelCase(e)},WebAnimationsStyleNormalizer.prototype.normalizeStyleValue=function(e,t,n,i){var r="",o=n.toString().trim();if(Y[t]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{var a=n.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&i.push("Please provide a CSS unit value for "+e+":"+n)}return o+r},WebAnimationsStyleNormalizer}(X)),Y=makeBooleanMap("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")),J={},Z=function(){function AnimationTransitionFactory(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}return AnimationTransitionFactory.prototype.match=function(e,t){return oneOrMoreTransitionsMatch(this.ast.matchers,e,t)},AnimationTransitionFactory.prototype.buildStyles=function(e,t,n){var i=this._stateStyles["*"],r=this._stateStyles[e],o=i?i.buildStyles(t,n):{};return r?r.buildStyles(t,n):o},AnimationTransitionFactory.prototype.build=function(e,t,n,i,r,o,a){var s=[],l=this.ast.options&&this.ast.options.params||J,u=r&&r.params||J,c=this.buildStyles(n,u,s),d=o&&o.params||J,p=this.buildStyles(i,d,s),h=new Set,f=new Map,y=new Map,m="void"===i,g={params:Object.assign({},l,d)},v=buildAnimationTimelines(e,t,this.ast.animation,c,p,g,a,s);if(s.length)return createTransitionInstruction(t,this._triggerName,n,i,m,c,p,[],[],f,y,s);v.forEach(function(e){var n=e.element,i=getOrSetAsInMap(f,n,{});e.preStyleProps.forEach(function(e){return i[e]=!0});var r=getOrSetAsInMap(y,n,{});e.postStyleProps.forEach(function(e){return r[e]=!0}),n!==t&&h.add(n)});var b=iteratorToArray(h.values());return createTransitionInstruction(t,this._triggerName,n,i,m,c,p,v,b,f,y)},AnimationTransitionFactory}(),Q=function(){function AnimationStateStyles(e,t){this.styles=e,this.defaultParams=t}return AnimationStateStyles.prototype.buildStyles=function(e,t){var n={},i=copyObj(this.defaultParams);return Object.keys(e).forEach(function(t){var n=e[t];null!=n&&(i[t]=n)}),this.styles.styles.forEach(function(e){if("string"!=typeof e){var r=e;Object.keys(r).forEach(function(e){var o=r[e];o.length>1&&(o=interpolateParams(o,i,t)),n[e]=o})}}),n},AnimationStateStyles}(),$=function(){function AnimationTrigger(e,t){var n=this;this.name=e,this.ast=t,this.transitionFactories=[],this.states={},t.states.forEach(function(e){var t=e.options&&e.options.params||{};n.states[e.name]=new Q(e.style,t)}),balanceProperties(this.states,"true","1"),balanceProperties(this.states,"false","0"),t.transitions.forEach(function(t){n.transitionFactories.push(new Z(e,t,n.states))}),this.fallbackTransition=createFallbackTransition(e,this.states)}return Object.defineProperty(AnimationTrigger.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),AnimationTrigger.prototype.matchTransition=function(e,t){return this.transitionFactories.find(function(n){return n.match(e,t)})||null},AnimationTrigger.prototype.matchStyles=function(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)},AnimationTrigger}(),ee=new j,te=function(){function TimelineAnimationEngine(e,t){this._driver=e,this._normalizer=t,this._animations={},this._playersById={},this.players=[]}return TimelineAnimationEngine.prototype.register=function(e,t){var n=[],i=buildAnimationAst(t,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[e]=i},TimelineAnimationEngine.prototype._buildPlayer=function(e,t,n){var i=e.element,r=normalizeKeyframes(this._driver,this._normalizer,i,e.keyframes,t,n);return this._driver.animate(i,r,e.duration,e.delay,e.easing,[])},TimelineAnimationEngine.prototype.create=function(e,t,n){var i=this;void 0===n&&(n={});var o,a=[],s=this._animations[e],l=new Map;if(s?(o=buildAnimationTimelines(this._driver,t,s,{},{},n,ee,a),o.forEach(function(e){var t=getOrSetAsInMap(l,e.element,{});e.postStyleProps.forEach(function(e){return t[e]=null})})):(a.push("The requested animation doesn't exist or has already been destroyed"),o=[]),a.length)throw new Error("Unable to create the animation due to the following errors: "+a.join("\n"));l.forEach(function(e,t){Object.keys(e).forEach(function(n){e[n]=i._driver.computeStyle(t,n,r.AUTO_STYLE)})});var u=o.map(function(e){var t=l.get(e.element);return i._buildPlayer(e,{},t)}),c=optimizeGroupPlayer(u);return this._playersById[e]=c,c.onDestroy(function(){return i.destroy(e)}),this.players.push(c),c},TimelineAnimationEngine.prototype.destroy=function(e){var t=this._getPlayer(e);t.destroy(),delete this._playersById[e];var n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)},TimelineAnimationEngine.prototype._getPlayer=function(e){var t=this._playersById[e];if(!t)throw new Error("Unable to find the timeline player referenced by "+e);return t},TimelineAnimationEngine.prototype.listen=function(e,t,n,i){var r=makeAnimationEvent(t,"","","");return listenOnPlayer(this._getPlayer(e),n,r,i),function(){}},TimelineAnimationEngine.prototype.command=function(e,t,n,i){if("register"==n)return void this.register(e,i[0]);if("create"==n){var r=i[0]||{};return void this.create(e,t,r)}var o=this._getPlayer(e);switch(n){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e)}},TimelineAnimationEngine}(),ne="ng-animate-queued",ie=".ng-animate-queued",re="ng-animate-disabled",oe=".ng-animate-disabled",ae=[],se={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!1},le={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!0},ue="__ng_removed",ce=function(){function StateValue(e){var t=e&&e.hasOwnProperty("value"),n=t?e.value:e;if(this.value=normalizeTriggerValue(n),t){var i=copyObj(e);delete i.value,this.options=i}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(StateValue.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),StateValue.prototype.absorbOptions=function(e){var t=e.params;if(t){var n=this.options.params;Object.keys(t).forEach(function(e){null==n[e]&&(n[e]=t[e])})}},StateValue}(),de="void",pe=new ce(de),he=new ce("DELETED"),fe=function(){function AnimationTransitionNamespace(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,addClass(t,this._hostClassName)}return AnimationTransitionNamespace.prototype.listen=function(e,t,n,i){var r=this;if(!this._triggers.hasOwnProperty(t))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+t+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+t+'" because the provided event is undefined!');if(!isTriggerEventValid(n))throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+t+'" is not supported!');var o=getOrSetAsInMap(this._elementListeners,e,[]),a={name:t,phase:n,callback:i};o.push(a);var s=getOrSetAsInMap(this._engine.statesByElement,e,{});return s.hasOwnProperty(t)||(addClass(e,C),addClass(e,C+"-"+t),s[t]=null),function(){r._engine.afterFlush(function(){var e=o.indexOf(a);e>=0&&o.splice(e,1),r._triggers[t]||delete s[t]})}},AnimationTransitionNamespace.prototype.register=function(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)},AnimationTransitionNamespace.prototype._getTrigger=function(e){var t=this._triggers[e];if(!t)throw new Error('The provided animation trigger "'+e+'" has not been registered!');return t},AnimationTransitionNamespace.prototype.trigger=function(e,t,n,i){var r=this;void 0===i&&(i=!0);var o=this._getTrigger(t),a=new me(this.id,t,e),s=this._engine.statesByElement.get(e);s||(addClass(e,C),addClass(e,C+"-"+t),this._engine.statesByElement.set(e,s={}));var l=s[t],u=new ce(n);if(!(n&&n.hasOwnProperty("value"))&&l&&u.absorbOptions(l.options),s[t]=u,l){if(l===he)return a}else l=pe;if(u.value===de||l.value!==u.value){var c=getOrSetAsInMap(this._engine.playersByElement,e,[]);c.forEach(function(e){e.namespaceId==r.id&&e.triggerName==t&&e.queued&&e.destroy()});var d=o.matchTransition(l.value,u.value),p=!1;if(!d){if(!i)return;d=o.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:d,fromState:l,toState:u,player:a,isFallbackTransition:p}),p||(addClass(e,ne),a.onStart(function(){removeClass(e,ne)})),a.onDone(function(){var t=r.players.indexOf(a);t>=0&&r.players.splice(t,1);var n=r._engine.playersByElement.get(e);if(n){var i=n.indexOf(a);i>=0&&n.splice(i,1)}}),this.players.push(a),c.push(a),a}if(!objEquals(l.params,u.params)){var h=[],f=o.matchStyles(l.value,l.params,h),y=o.matchStyles(u.value,u.params,h);h.length?this._engine.reportError(h):this._engine.afterFlush(function(){eraseStyles(e,f),setStyles(e,y)})}},AnimationTransitionNamespace.prototype.deregister=function(e){var t=this;delete this._triggers[e],this._engine.statesByElement.forEach(function(t,n){delete t[e]}),this._elementListeners.forEach(function(n,i){t._elementListeners.set(i,n.filter(function(t){return t.name!=e}))})},AnimationTransitionNamespace.prototype.clearElementCache=function(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);var t=this._engine.playersByElement.get(e);t&&(t.forEach(function(e){return e.destroy()}),this._engine.playersByElement.delete(e))},AnimationTransitionNamespace.prototype._destroyInnerNodes=function(e,t,n){var i=this;void 0===n&&(n=!1),this._engine.driver.query(e,_,!0).forEach(function(e){if(n&&containsClass(e,i._hostClassName)){var r=i._engine.namespacesByHostElement.get(e);r&&r.removeNode(e,t,!0),i.removeNode(e,t,!0)}else i.clearElementCache(e)})},AnimationTransitionNamespace.prototype.removeNode=function(e,t,n){var i=this,r=this._engine;!n&&e.childElementCount&&this._destroyInnerNodes(e,t,!0);var o=r.statesByElement.get(e);if(o){var a=[];if(Object.keys(o).forEach(function(t){if(i._triggers[t]){var n=i.trigger(e,t,de,!1);n&&a.push(n)}}),a.length)return r.markElementAsRemoved(this.id,e,!0,t),void optimizeGroupPlayer(a).onDone(function(){return r.processLeaveNode(e)})}var s=!1;if(r.totalAnimations){var l=r.players.length?r.playersByQueriedElement.get(e):[];if(l&&l.length)s=!0;else for(var u=e;u=u.parentNode;){var c=r.statesByElement.get(u);if(c){s=!0;break}}}var d=this._elementListeners.get(e);if(d){var p=new Set;d.forEach(function(t){var n=t.name;if(!p.has(n)){p.add(n);var o=i._triggers[n],a=o.fallbackTransition,s=r.statesByElement.get(e),l=s[n]||pe,u=new ce(de),c=new me(i.id,n,e);i._engine.totalQueuedPlayers++,i._queue.push({element:e,triggerName:n,transition:a,fromState:l,toState:u,player:c,isFallbackTransition:!0})}})}s?r.markElementAsRemoved(this.id,e,!1,t):(r.afterFlush(function(){return i.clearElementCache(e)}),r.destroyInnerAnimations(e),r._onRemovalComplete(e,t))},AnimationTransitionNamespace.prototype.insertNode=function(e,t){addClass(e,this._hostClassName)},AnimationTransitionNamespace.prototype.drainQueuedTransitions=function(e){var t=this,n=[];return this._queue.forEach(function(i){var r=i.player;if(!r.destroyed){var o=i.element,a=t._elementListeners.get(o);a&&a.forEach(function(t){if(t.name==i.triggerName){var n=makeAnimationEvent(o,i.triggerName,i.fromState.value,i.toState.value);n._data=e,listenOnPlayer(i.player,t.phase,n,t.callback)}}),r.markedForDestroy?t._engine.afterFlush(function(){r.destroy()}):n.push(i)}}),this._queue=[],n.sort(function(e,n){var i=e.transition.ast.depCount,r=n.transition.ast.depCount;return 0==i||0==r?i-r:t._engine.driver.containsElement(e.element,n.element)?1:-1})},AnimationTransitionNamespace.prototype.destroy=function(e){this.players.forEach(function(e){return e.destroy()}),this._destroyInnerNodes(this.hostElement,e)},AnimationTransitionNamespace.prototype.elementContainsData=function(e){var t=!1;return this._elementListeners.has(e)&&(t=!0),t=!!this._queue.find(function(t){return t.element===e})||t},AnimationTransitionNamespace}(),ye=function(){function TransitionAnimationEngine(e,t){this.driver=e,this._normalizer=t,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(e,t){}}return TransitionAnimationEngine.prototype._onRemovalComplete=function(e,t){this.onRemovalComplete(e,t)},Object.defineProperty(TransitionAnimationEngine.prototype,"queuedPlayers",{get:function(){var e=[];return this._namespaceList.forEach(function(t){t.players.forEach(function(t){t.queued&&e.push(t)})}),e},enumerable:!0,configurable:!0}),TransitionAnimationEngine.prototype.createNamespace=function(e,t){var n=new fe(e,t,this);return t.parentNode?this._balanceNamespaceList(n,t):(this.newHostElements.set(t,n),this.collectEnterElement(t)),this._namespaceLookup[e]=n},TransitionAnimationEngine.prototype._balanceNamespaceList=function(e,t){var n=this._namespaceList.length-1;if(n>=0){for(var i=!1,r=n;r>=0;r--){var o=this._namespaceList[r];if(this.driver.containsElement(o.hostElement,t)){this._namespaceList.splice(r+1,0,e),i=!0;break}}i||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e},TransitionAnimationEngine.prototype.register=function(e,t){var n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n},TransitionAnimationEngine.prototype.registerTrigger=function(e,t,n){var i=this._namespaceLookup[e];i&&i.register(t,n)&&this.totalAnimations++},TransitionAnimationEngine.prototype.destroy=function(e,t){var n=this;if(e){var i=this._fetchNamespace(e);this.afterFlush(function(){n.namespacesByHostElement.delete(i.hostElement),delete n._namespaceLookup[e];var t=n._namespaceList.indexOf(i);t>=0&&n._namespaceList.splice(t,1)}),this.afterFlushAnimationsDone(function(){return i.destroy(t)})}},TransitionAnimationEngine.prototype._fetchNamespace=function(e){return this._namespaceLookup[e]},TransitionAnimationEngine.prototype.trigger=function(e,t,n,i){return!!isElementNode(t)&&(this._fetchNamespace(e).trigger(t,n,i),!0)},TransitionAnimationEngine.prototype.insertNode=function(e,t,n,i){if(isElementNode(t)){var r=t[ue];r&&r.setForRemoval&&(r.setForRemoval=!1),e&&this._fetchNamespace(e).insertNode(t,n),i&&this.collectEnterElement(t)}},TransitionAnimationEngine.prototype.collectEnterElement=function(e){this.collectedEnterElements.push(e)},TransitionAnimationEngine.prototype.markElementAsDisabled=function(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),addClass(e,re)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),removeClass(e,re))},TransitionAnimationEngine.prototype.removeNode=function(e,t,n,i){if(!isElementNode(t))return void this._onRemovalComplete(t,n);var r=e?this._fetchNamespace(e):null;r?r.removeNode(t,n,i):this.markElementAsRemoved(e,t,!1,n)},TransitionAnimationEngine.prototype.markElementAsRemoved=function(e,t,n,i){this.collectedLeaveElements.push(t),t[ue]={namespaceId:e,setForRemoval:i,hasAnimation:n,removedBeforeQueried:!1}},TransitionAnimationEngine.prototype.listen=function(e,t,n,i,r){return isElementNode(t)?this._fetchNamespace(e).listen(t,n,i,r):function(){}},TransitionAnimationEngine.prototype._buildInstruction=function(e,t){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,e.fromState.options,e.toState.options,t)},TransitionAnimationEngine.prototype.destroyInnerAnimations=function(e){var t=this,n=this.driver.query(e,_,!0);n.forEach(function(e){var n=t.playersByElement.get(e);n&&n.forEach(function(e){e.queued?e.markedForDestroy=!0:e.destroy()});var i=t.statesByElement.get(e);i&&Object.keys(i).forEach(function(e){return i[e]=he})}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,T,!0),n.length&&n.forEach(function(e){var n=t.playersByQueriedElement.get(e);n&&n.forEach(function(e){return e.finish()})}))},TransitionAnimationEngine.prototype.whenRenderingDone=function(){var e=this;return new Promise(function(t){if(e.players.length)return optimizeGroupPlayer(e.players).onDone(function(){return t()});t()})},TransitionAnimationEngine.prototype.processLeaveNode=function(e){var t=this,n=e[ue];if(n&&n.setForRemoval){if(e[ue]=se,n.namespaceId){this.destroyInnerAnimations(e);var i=this._fetchNamespace(n.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}this.driver.matchesElement(e,oe)&&this.markElementAsDisabled(e,!1),this.driver.query(e,oe,!0).forEach(function(n){t.markElementAsDisabled(e,!1)})},TransitionAnimationEngine.prototype.flush=function(e){var t=this;void 0===e&&(e=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(e,n){return t._balanceNamespaceList(e,n)}),this.newHostElements.clear()),this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){var i=[];try{n=this._flushAnimations(i,e)}finally{for(var r=0;r<i.length;r++)i[r]()}}else for(var r=0;r<this.collectedLeaveElements.length;r++){var o=this.collectedLeaveElements[r];this.processLeaveNode(o)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(function(e){return e()}),this._flushFns=[],this._whenQuietFns.length){var a=this._whenQuietFns;this._whenQuietFns=[],n.length?optimizeGroupPlayer(n).onDone(function(){a.forEach(function(e){return e()})}):a.forEach(function(e){return e()})}},TransitionAnimationEngine.prototype.reportError=function(e){throw new Error("Unable to process animations due to the following failed trigger transitions\n "+e.join("\n"))},TransitionAnimationEngine.prototype._flushAnimations=function(e,t){var n=this,i=new j,o=[],a=new Map,s=[],l=new Map,u=new Map,c=new Map,d=new Set;this.disabledNodes.forEach(function(e){d.add(e);for(var t=n.driver.query(e,ie,!0),i=0;i<t.length;i++)d.add(t[i])});for(var p=getBodyNode(),h=this.collectedEnterElements.length?this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)):[],f=0;f<h.length;f++)addClass(h[f],v);for(var y=[],m=new Set,f=0;f<this.collectedLeaveElements.length;f++){var g=this.collectedLeaveElements[f],w=g[ue];w&&w.setForRemoval&&(addClass(g,b),y.push(g),w.hasAnimation||m.add(g))}e.push(function(){h.forEach(function(e){return removeClass(e,v)}),y.forEach(function(e){removeClass(e,b),n.processLeaveNode(e)})});for(var A=[],C=[],f=this._namespaceList.length-1;f>=0;f--){this._namespaceList[f].drainQueuedTransitions(t).forEach(function(e){var t=e.player;A.push(t);var r=e.element;if(!p||!n.driver.containsElement(p,r))return void t.destroy();var a=n._buildInstruction(e,i);if(a.errors&&a.errors.length)return void C.push(a);if(e.isFallbackTransition)return t.onStart(function(){return eraseStyles(r,a.fromStyles)}),t.onDestroy(function(){return setStyles(r,a.toStyles)}),void o.push(t);a.timelines.forEach(function(e){return e.stretchStartingKeyframe=!0}),i.append(r,a.timelines);var d={instruction:a,player:t,element:r};s.push(d),a.queriedElements.forEach(function(e){return getOrSetAsInMap(l,e,[]).push(t)}),a.preStyleProps.forEach(function(e,t){var n=Object.keys(e);if(n.length){var i=u.get(t);i||u.set(t,i=new Set),n.forEach(function(e){return i.add(e)})}}),a.postStyleProps.forEach(function(e,t){var n=Object.keys(e),i=c.get(t);i||c.set(t,i=new Set),n.forEach(function(e){return i.add(e)})})})}if(C.length){var _=[];C.forEach(function(e){_.push("@"+e.triggerName+" has failed due to:\n"),e.errors.forEach(function(e){return _.push("- "+e+"\n")})}),A.forEach(function(e){return e.destroy()}),this.reportError(_)}for(var S=new Set,f=0;f<h.length;f++){var g=h[f];i.has(g)||S.add(g)}var x=new Map,D=[];s.forEach(function(e){var t=e.element;i.has(t)&&(D.unshift(t),n._beforeAnimationBuild(e.player.namespaceId,e.instruction,x))}),o.forEach(function(e){var t=e.element;n._getPreviousPlayers(t,!1,e.namespaceId,e.triggerName,null).forEach(function(e){getOrSetAsInMap(x,t,[]).push(e),e.destroy()})});var E=y.filter(function(e){return replacePostStylesAsPre(e,u,c)}),I=cloakAndComputeStyles(this.driver,m,c,r.AUTO_STYLE),M=I[0];I[1].forEach(function(e){replacePostStylesAsPre(e,u,c)&&E.push(e)});var P=(u.size?cloakAndComputeStyles(this.driver,S,u,r["ɵPRE_STYLE"]):[new Map])[0];E.forEach(function(e){var t=M.get(e),n=P.get(e);M.set(e,Object.assign({},t,n))});var k=[],F=[];s.forEach(function(e){var t=e.element,r=e.player,s=e.instruction;if(i.has(t)){if(d.has(t))return void o.push(r);var l=n._buildAnimation(r.namespaceId,s,x,a,P,M);r.setRealPlayer(l);for(var u=null,c=0;c<D.length;c++){var p=D[c];if(p===t)break;if(n.driver.containsElement(p,t)){u=p;break}}if(u){var h=n.playersByElement.get(u);h&&h.length&&(r.parentPlayer=optimizeGroupPlayer(h)),o.push(r)}else k.push(r)}else eraseStyles(t,s.fromStyles),r.onDestroy(function(){return setStyles(t,s.toStyles)}),F.push(r),d.has(t)&&o.push(r)}),F.forEach(function(e){var t=a.get(e.element);if(t&&t.length){var n=optimizeGroupPlayer(t);e.setRealPlayer(n)}}),o.forEach(function(e){e.parentPlayer?e.parentPlayer.onDestroy(function(){return e.destroy()}):e.destroy()});for(var f=0;f<y.length;f++){var g=y[f],w=g[ue];if(removeClass(g,b),!w||!w.hasAnimation){var O=[];if(l.size){var N=l.get(g);N&&N.length&&O.push.apply(O,N);for(var R=this.driver.query(g,T,!0),V=0;V<R.length;V++){var B=l.get(R[V]);B&&B.length&&O.push.apply(O,B)}}var L=O.filter(function(e){return!e.destroyed});L.length?removeNodesAfterAnimationDone(this,g,L):this.processLeaveNode(g)}}return y.length=0,k.forEach(function(e){n.players.push(e),e.onDone(function(){e.destroy();var t=n.players.indexOf(e);n.players.splice(t,1)}),e.play()}),k},TransitionAnimationEngine.prototype.elementContainsData=function(e,t){var n=!1,i=t[ue];return i&&i.setForRemoval&&(n=!0),this.playersByElement.has(t)&&(n=!0),this.playersByQueriedElement.has(t)&&(n=!0),this.statesByElement.has(t)&&(n=!0),this._fetchNamespace(e).elementContainsData(t)||n},TransitionAnimationEngine.prototype.afterFlush=function(e){this._flushFns.push(e)},TransitionAnimationEngine.prototype.afterFlushAnimationsDone=function(e){this._whenQuietFns.push(e)},TransitionAnimationEngine.prototype._getPreviousPlayers=function(e,t,n,i,r){var o=[];if(t){var a=this.playersByQueriedElement.get(e);a&&(o=a)}else{var s=this.playersByElement.get(e);if(s){var l=!r||r==de;s.forEach(function(e){e.queued||(l||e.triggerName==i)&&o.push(e)})}}return(n||i)&&(o=o.filter(function(e){return(!n||n==e.namespaceId)&&(!i||i==e.triggerName)})),o},TransitionAnimationEngine.prototype._beforeAnimationBuild=function(e,t,n){var i=this,r=t.triggerName,o=t.element,a=t.isRemovalTransition?void 0:e,s=t.isRemovalTransition?void 0:r;t.timelines.map(function(e){var r=e.element,l=r!==o,u=getOrSetAsInMap(n,r,[]);i._getPreviousPlayers(r,l,a,s,t.toState).forEach(function(e){var t=e.getRealPlayer();t.beforeDestroy&&t.beforeDestroy(),e.destroy(),u.push(e)})}),eraseStyles(o,t.fromStyles)},TransitionAnimationEngine.prototype._buildAnimation=function(e,t,n,i,o,a){var s=this,l=t.triggerName,u=t.element,c=[],d=new Set,p=new Set,h=t.timelines.map(function(t){var h=t.element;d.add(h);var f=h[ue];if(f&&f.removedBeforeQueried)return new r.NoopAnimationPlayer;var y=h!==u,m=flattenGroupPlayers((n.get(h)||ae).map(function(e){return e.getRealPlayer()})).filter(function(e){var t=e;return!!t.element&&t.element===h}),g=o.get(h),v=a.get(h),b=normalizeKeyframes(s.driver,s._normalizer,h,t.keyframes,g,v),w=s._buildPlayer(t,b,m);if(t.subTimeline&&i&&p.add(h),y){var A=new me(e,l,h);A.setRealPlayer(w),c.push(A)}return w});c.forEach(function(e){getOrSetAsInMap(s.playersByQueriedElement,e.element,[]).push(e),e.onDone(function(){return deleteOrUnsetInMap(s.playersByQueriedElement,e.element,e)})}),d.forEach(function(e){return addClass(e,S)});var f=optimizeGroupPlayer(h);return f.onDestroy(function(){d.forEach(function(e){return removeClass(e,S)}),setStyles(u,t.toStyles)}),p.forEach(function(e){getOrSetAsInMap(i,e,[]).push(f)}),f},TransitionAnimationEngine.prototype._buildPlayer=function(e,t,n){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new r.NoopAnimationPlayer},TransitionAnimationEngine}(),me=function(){function TransitionAnimationPlayer(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n,this._player=new r.NoopAnimationPlayer,this._containsRealPlayer=!1,this._queuedCallbacks={},this._destroyed=!1,this.markedForDestroy=!1}return Object.defineProperty(TransitionAnimationPlayer.prototype,"queued",{get:function(){return 0==this._containsRealPlayer},enumerable:!0,configurable:!0}),Object.defineProperty(TransitionAnimationPlayer.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),TransitionAnimationPlayer.prototype.setRealPlayer=function(e){var t=this;this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach(function(n){t._queuedCallbacks[n].forEach(function(t){return listenOnPlayer(e,n,void 0,t)})}),this._queuedCallbacks={},this._containsRealPlayer=!0)},TransitionAnimationPlayer.prototype.getRealPlayer=function(){return this._player},TransitionAnimationPlayer.prototype._queueEvent=function(e,t){getOrSetAsInMap(this._queuedCallbacks,e,[]).push(t)},TransitionAnimationPlayer.prototype.onDone=function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)},TransitionAnimationPlayer.prototype.onStart=function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)},TransitionAnimationPlayer.prototype.onDestroy=function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)},TransitionAnimationPlayer.prototype.init=function(){this._player.init()},TransitionAnimationPlayer.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},TransitionAnimationPlayer.prototype.play=function(){!this.queued&&this._player.play()},TransitionAnimationPlayer.prototype.pause=function(){!this.queued&&this._player.pause()},TransitionAnimationPlayer.prototype.restart=function(){!this.queued&&this._player.restart()},TransitionAnimationPlayer.prototype.finish=function(){this._player.finish()},TransitionAnimationPlayer.prototype.destroy=function(){this._destroyed=!0,this._player.destroy()},TransitionAnimationPlayer.prototype.reset=function(){!this.queued&&this._player.reset()},TransitionAnimationPlayer.prototype.setPosition=function(e){this.queued||this._player.setPosition(e)},TransitionAnimationPlayer.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},Object.defineProperty(TransitionAnimationPlayer.prototype,"totalTime",{get:function(){return this._player.totalTime},enumerable:!0,configurable:!0}),TransitionAnimationPlayer}(),ge="$$classes",ve=function(){function AnimationEngine(e,t){var n=this;this._triggerCache={},this.onRemovalComplete=function(e,t){},this._transitionEngine=new ye(e,t),this._timelineEngine=new te(e,t),this._transitionEngine.onRemovalComplete=function(e,t){return n.onRemovalComplete(e,t)}}return AnimationEngine.prototype.registerTrigger=function(e,t,n,i,r){var o=e+"-"+i,a=this._triggerCache[o];if(!a){var s=[],l=buildAnimationAst(r,s);if(s.length)throw new Error('The animation trigger "'+i+'" has failed to build due to the following errors:\n - '+s.join("\n - "));a=buildTrigger(i,l),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(t,i,a)},AnimationEngine.prototype.register=function(e,t){this._transitionEngine.register(e,t)},AnimationEngine.prototype.destroy=function(e,t){this._transitionEngine.destroy(e,t)},AnimationEngine.prototype.onInsert=function(e,t,n,i){this._transitionEngine.insertNode(e,t,n,i)},AnimationEngine.prototype.onRemove=function(e,t,n){this._transitionEngine.removeNode(e,t,n)},AnimationEngine.prototype.disableAnimations=function(e,t){this._transitionEngine.markElementAsDisabled(e,t)},AnimationEngine.prototype.process=function(e,t,n,i){if("@"==n.charAt(0)){var r=parseTimelineCommand(n),o=r[0],a=r[1],s=i;this._timelineEngine.command(o,t,a,s)}else this._transitionEngine.trigger(e,t,n,i)},AnimationEngine.prototype.listen=function(e,t,n,i,r){if("@"==n.charAt(0)){var o=parseTimelineCommand(n),a=o[0],s=o[1];return this._timelineEngine.listen(a,t,s,r)}return this._transitionEngine.listen(e,t,n,i,r)},AnimationEngine.prototype.flush=function(e){void 0===e&&(e=-1),this._transitionEngine.flush(e)},Object.defineProperty(AnimationEngine.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),AnimationEngine.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},AnimationEngine}(),be=function(){function WebAnimationsPlayer(e,t,n,i){void 0===i&&(i=[]);var r=this;this.element=e,this.keyframes=t,this.options=n,this.previousPlayers=i,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.previousStyles={},this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay,allowPreviousPlayerStylesMerge(this._duration,this._delay)&&i.forEach(function(e){var t=e.currentSnapshot;Object.keys(t).forEach(function(e){return r.previousStyles[e]=t[e]})})}return WebAnimationsPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},WebAnimationsPlayer.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},WebAnimationsPlayer.prototype._buildPlayer=function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes.map(function(e){return copyStyles(e,!1)}),n=Object.keys(this.previousStyles);if(n.length){var i=t[0],r=[];if(n.forEach(function(t){i.hasOwnProperty(t)||r.push(t),i[t]=e.previousStyles[t]}),r.length)for(var o=this,a=function(){var e=t[s];r.forEach(function(t){e[t]=_computeStyle(o.element,t)})},s=1;s<t.length;s++)a()}this._player=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this._player.addEventListener("finish",function(){return e._onFinish()})}},WebAnimationsPlayer.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this._player.pause()},WebAnimationsPlayer.prototype._triggerWebAnimation=function(e,t,n){return e.animate(t,n)},Object.defineProperty(WebAnimationsPlayer.prototype,"domPlayer",{get:function(){return this._player},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},WebAnimationsPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},WebAnimationsPlayer.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},WebAnimationsPlayer.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0),this._player.play()},WebAnimationsPlayer.prototype.pause=function(){this.init(),this._player.pause()},WebAnimationsPlayer.prototype.finish=function(){this.init(),this._onFinish(),this._player.finish()},WebAnimationsPlayer.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},WebAnimationsPlayer.prototype._resetDomPlayerState=function(){this._player&&this._player.cancel()},WebAnimationsPlayer.prototype.restart=function(){this.reset(),this.play()},WebAnimationsPlayer.prototype.hasStarted=function(){return this._started},WebAnimationsPlayer.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},WebAnimationsPlayer.prototype.setPosition=function(e){this._player.currentTime=e*this.time},WebAnimationsPlayer.prototype.getPosition=function(){return this._player.currentTime/this.time},Object.defineProperty(WebAnimationsPlayer.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.beforeDestroy=function(){var e=this,t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:_computeStyle(e.element,n))}),this.currentSnapshot=t},WebAnimationsPlayer}(),we=function(){function WebAnimationsDriver(){}return WebAnimationsDriver.prototype.matchesElement=function(e,t){return c(e,t)},WebAnimationsDriver.prototype.containsElement=function(e,t){return d(e,t)},WebAnimationsDriver.prototype.query=function(e,t,n){return p(e,t,n)},WebAnimationsDriver.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},WebAnimationsDriver.prototype.animate=function(e,t,n,i,r,o){void 0===o&&(o=[]);var a=0==i?"both":"forwards",s={duration:n,delay:i,fill:a};r&&(s.easing=r);var l=o.filter(function(e){return e instanceof be});return new be(e,t,s,l)},WebAnimationsDriver}()},216:function(e,t,n){"use strict";function __extends(e,t){function __(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}t.a=__extends;/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};Object.assign},218:function(e,t,n){"use strict";/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function isEmptyInputValue(e){return null==e||0===e.length}function isPresent(e){return null!=e}function toObservable(e){var t=n.i(r["ɵisPromise"])(e)?n.i(a.fromPromise)(e):e;if(!n.i(r["ɵisObservable"])(t))throw new Error("Expected validator to return Promise or Observable.");return t}function _executeValidators(e,t){return t.map(function(t){return t(e)})}function _executeAsyncValidators(e,t){return t.map(function(t){return t(e)})}function _mergeErrors(e){var t=e.reduce(function(e,t){return null!=t?Object.assign({},e,t):e},{});return 0===Object.keys(t).length?null:t}function _isAndroid(){return/android (\d+)/.test((n.i(l["ɵgetDOM"])()?n.i(l["ɵgetDOM"])().getUserAgent():"").toLowerCase())}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function normalizeValidator(e){return e.validate?function(t){return e.validate(t)}:e}function normalizeAsyncValidator(e){return e.validate?function(t){return e.validate(t)}:e}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function unimplemented(){throw new Error("unimplemented")}function _buildValueString(e,t){return null==e?""+t:(t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}function _extractId(e){return e.split(":")[0]}function _buildValueString$1(e,t){return null==e?""+t:("string"==typeof t&&(t="'"+t+"'"),t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}function _extractId$1(e){return e.split(":")[0]}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function controlPath(e,t){return t.path.concat([e])}function setUpControl(e,t){e||_throwError(t,"Cannot find control with"),t.valueAccessor||_throwError(t,"No value accessor for form control with"),e.validator=f.compose([e.validator,t.validator]),e.asyncValidator=f.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),t.valueAccessor.registerOnChange(function(n){t.viewToModelUpdate(n),e.markAsDirty(),e.setValue(n,{emitModelToViewChange:!1})}),t.valueAccessor.registerOnTouched(function(){return e.markAsTouched()}),e.registerOnChange(function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)}),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange(function(e){t.valueAccessor.setDisabledState(e)}),t._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})}),t._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})})}function cleanUpControl(e,t){t.valueAccessor.registerOnChange(function(){return _noControlError(t)}),t.valueAccessor.registerOnTouched(function(){return _noControlError(t)}),t._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),t._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),e&&e._clearChangeFns()}function setUpFormContainer(e,t){null==e&&_throwError(t,"Cannot find control with"),e.validator=f.compose([e.validator,t.validator]),e.asyncValidator=f.composeAsync([e.asyncValidator,t.asyncValidator])}function _noControlError(e){return _throwError(e,"There is no FormControl instance attached to form control element with")}function _throwError(e,t){var n;throw n=e.path.length>1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function composeValidators(e){return null!=e?f.compose(e.map(normalizeValidator)):null}function composeAsyncValidators(e){return null!=e?f.composeAsync(e.map(normalizeAsyncValidator)):null}function isPropertyUpdated(e,t){if(!e.hasOwnProperty("model"))return!1;var i=e.model;return!!i.isFirstChange()||!n.i(r["ɵlooseIdentical"])(t,i.currentValue)}function isBuiltInAccessor(e){return N.some(function(t){return e.constructor===t})}function selectValueAccessor(e,t){if(!t)return null;var n=void 0,i=void 0,r=void 0;return t.forEach(function(t){t.constructor===w?n=t:isBuiltInAccessor(t)?(i&&_throwError(e,"More than one built-in value accessor matches form control with"),i=t):(r&&_throwError(e,"More than one custom value accessor matches form control with"),r=t)}),r||(i||(n||(_throwError(e,"No valid value accessor for form control with"),null)))}function _find(e,t,n){return null==t?null:(t instanceof Array||(t=t.split(n)),t instanceof Array&&0===t.length?null:t.reduce(function(e,t){return e instanceof X?e.controls[t]||null:e instanceof K?e.at(t)||null:null},e))}function coerceToValidator(e){return Array.isArray(e)?composeValidators(e):e||null}function coerceToAsyncValidator(e){return Array.isArray(e)?composeAsyncValidators(e):e||null}function remove(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function _hasInvalidParent(e){return!(e instanceof de||e instanceof ue||e instanceof he)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(15),r=n(2),o=n(103),a=(n.n(o),n(60)),s=(n.n(a),n(63)),l=(n.n(s),n(18));n.d(t,"AbstractControlDirective",function(){return u}),n.d(t,"AbstractFormGroupDirective",function(){return R}),n.d(t,"CheckboxControlValueAccessor",function(){return g}),n.d(t,"ControlContainer",function(){return c}),n.d(t,"NG_VALUE_ACCESSOR",function(){return y}),n.d(t,"COMPOSITION_BUFFER_MODE",function(){return b}),n.d(t,"DefaultValueAccessor",function(){return w}),n.d(t,"NgControl",function(){return _}),n.d(t,"NgControlStatus",function(){return L}),n.d(t,"NgControlStatusGroup",function(){return j}),n.d(t,"NgForm",function(){return Z}),n.d(t,"NgModel",function(){return re}),n.d(t,"NgModelGroup",function(){return te}),n.d(t,"RadioControlValueAccessor",function(){return x}),n.d(t,"FormControlDirective",function(){return se}),n.d(t,"FormControlName",function(){return ye}),n.d(t,"FormGroupDirective",function(){return ue}),n.d(t,"FormArrayName",function(){return he}),n.d(t,"FormGroupName",function(){return de}),n.d(t,"NgSelectOption",function(){return P}),n.d(t,"SelectControlValueAccessor",function(){return M}),n.d(t,"SelectMultipleControlValueAccessor",function(){return F}),n.d(t,"CheckboxRequiredValidator",function(){return be}),n.d(t,"EmailValidator",function(){return Ae}),n.d(t,"MaxLengthValidator",function(){return Te}),n.d(t,"MinLengthValidator",function(){return _e}),n.d(t,"PatternValidator",function(){return De}),n.d(t,"RequiredValidator",function(){return ve}),n.d(t,"FormBuilder",function(){return Ee}),n.d(t,"AbstractControl",function(){return H}),n.d(t,"FormArray",function(){return K}),n.d(t,"FormControl",function(){return W}),n.d(t,"FormGroup",function(){return X}),n.d(t,"NG_ASYNC_VALIDATORS",function(){return p}),n.d(t,"NG_VALIDATORS",function(){return d}),n.d(t,"Validators",function(){return f}),n.d(t,"VERSION",function(){return Ie}),n.d(t,"FormsModule",function(){return Ne}),n.d(t,"ReactiveFormsModule",function(){return Re}),n.d(t,"ɵba",function(){return Oe}),n.d(t,"ɵz",function(){return Fe}),n.d(t,"ɵx",function(){return Pe}),n.d(t,"ɵy",function(){return ke}),n.d(t,"ɵa",function(){return m}),n.d(t,"ɵb",function(){return v}),n.d(t,"ɵc",function(){return V}),n.d(t,"ɵd",function(){return B}),n.d(t,"ɵe",function(){return Y}),n.d(t,"ɵf",function(){return ne}),n.d(t,"ɵg",function(){return ee}),n.d(t,"ɵbf",function(){return Me}),n.d(t,"ɵbb",function(){return A}),n.d(t,"ɵbc",function(){return C}),n.d(t,"ɵh",function(){return S}),n.d(t,"ɵi",function(){return T}),n.d(t,"ɵbd",function(){return D}),n.d(t,"ɵbe",function(){return E}),n.d(t,"ɵj",function(){return ae}),n.d(t,"ɵk",function(){return fe}),n.d(t,"ɵl",function(){return le}),n.d(t,"ɵn",function(){return pe}),n.d(t,"ɵm",function(){return ce}),n.d(t,"ɵo",function(){return I}),n.d(t,"ɵq",function(){return O}),n.d(t,"ɵp",function(){return k}),n.d(t,"ɵs",function(){return ge}),n.d(t,"ɵt",function(){return we}),n.d(t,"ɵv",function(){return Se}),n.d(t,"ɵu",function(){return Ce}),n.d(t,"ɵw",function(){return xe}),n.d(t,"ɵr",function(){return me});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var u=function(){function AbstractControlDirective(){}return AbstractControlDirective.prototype.control=function(){},Object.defineProperty(AbstractControlDirective.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),AbstractControlDirective.prototype.reset=function(e){void 0===e&&(e=void 0),this.control&&this.control.reset(e)},AbstractControlDirective.prototype.hasError=function(e,t){return!!this.control&&this.control.hasError(e,t)},AbstractControlDirective.prototype.getError=function(e,t){return this.control?this.control.getError(e,t):null},AbstractControlDirective}(),c=function(e){function ControlContainer(){return null!==e&&e.apply(this,arguments)||this}return i.a(ControlContainer,e),Object.defineProperty(ControlContainer.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(ControlContainer.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),ControlContainer}(u),d=new r.InjectionToken("NgValidators"),p=new r.InjectionToken("NgAsyncValidators"),h=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,f=function(){function Validators(){}return Validators.min=function(e){return function(t){if(isEmptyInputValue(t.value)||isEmptyInputValue(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n<e?{min:{min:e,actual:t.value}}:null}},Validators.max=function(e){return function(t){if(isEmptyInputValue(t.value)||isEmptyInputValue(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n>e?{max:{max:e,actual:t.value}}:null}},Validators.required=function(e){return isEmptyInputValue(e.value)?{required:!0}:null},Validators.requiredTrue=function(e){return!0===e.value?null:{required:!0}},Validators.email=function(e){return h.test(e.value)?null:{email:!0}},Validators.minLength=function(e){return function(t){if(isEmptyInputValue(t.value))return null;var n=t.value?t.value.length:0;return n<e?{minlength:{requiredLength:e,actualLength:n}}:null}},Validators.maxLength=function(e){return function(t){var n=t.value?t.value.length:0;return n>e?{maxlength:{requiredLength:e,actualLength:n}}:null}},Validators.pattern=function(e){if(!e)return Validators.nullValidator;var t,n;return"string"==typeof e?(n="^"+e+"$",t=new RegExp(n)):(n=e.toString(),t=e),function(e){if(isEmptyInputValue(e.value))return null;var i=e.value;return t.test(i)?null:{pattern:{requiredPattern:n,actualValue:i}}}},Validators.nullValidator=function(e){return null},Validators.compose=function(e){if(!e)return null;var t=e.filter(isPresent);return 0==t.length?null:function(e){return _mergeErrors(_executeValidators(e,t))}},Validators.composeAsync=function(e){if(!e)return null;var t=e.filter(isPresent);return 0==t.length?null:function(e){var i=_executeAsyncValidators(e,t).map(toObservable);return s.map.call(n.i(o.forkJoin)(i),_mergeErrors)}},Validators}(),y=new r.InjectionToken("NgValueAccessor"),m={provide:y,useExisting:n.i(r.forwardRef)(function(){return g}),multi:!0},g=function(){function CheckboxControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return CheckboxControlValueAccessor.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"checked",e)},CheckboxControlValueAccessor.prototype.registerOnChange=function(e){this.onChange=e},CheckboxControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},CheckboxControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},CheckboxControlValueAccessor}();g.decorators=[{type:r.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[m]}]}],g.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var v={provide:y,useExisting:n.i(r.forwardRef)(function(){return w}),multi:!0},b=new r.InjectionToken("CompositionEventMode"),w=function(){function DefaultValueAccessor(e,t,n){this._renderer=e,this._elementRef=t,this._compositionMode=n,this.onChange=function(e){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!_isAndroid())}return DefaultValueAccessor.prototype.writeValue=function(e){var t=null==e?"":e;this._renderer.setProperty(this._elementRef.nativeElement,"value",t)},DefaultValueAccessor.prototype.registerOnChange=function(e){this.onChange=e},DefaultValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},DefaultValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},DefaultValueAccessor.prototype._handleInput=function(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)},DefaultValueAccessor.prototype._compositionStart=function(){this._composing=!0},DefaultValueAccessor.prototype._compositionEnd=function(e){this._composing=!1,this._compositionMode&&this.onChange(e)},DefaultValueAccessor}();w.decorators=[{type:r.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"_handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"_compositionStart()","(compositionend)":"_compositionEnd($event.target.value)"},providers:[v]}]}],w.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[b]}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var A={provide:y,useExisting:n.i(r.forwardRef)(function(){return C}),multi:!0},C=function(){function NumberValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return NumberValueAccessor.prototype.writeValue=function(e){var t=null==e?"":e;this._renderer.setProperty(this._elementRef.nativeElement,"value",t)},NumberValueAccessor.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},NumberValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},NumberValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},NumberValueAccessor}();C.decorators=[{type:r.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[A]}]}],C.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef}]};var _=function(e){function NgControl(){var t=e.apply(this,arguments)||this;return t._parent=null,t.name=null,t.valueAccessor=null,t._rawValidators=[],t._rawAsyncValidators=[],t}return i.a(NgControl,e),Object.defineProperty(NgControl.prototype,"validator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(NgControl.prototype,"asyncValidator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),NgControl.prototype.viewToModelUpdate=function(e){},NgControl}(u),S={provide:y,useExisting:n.i(r.forwardRef)(function(){return x}),multi:!0},T=function(){function RadioControlRegistry(){this._accessors=[]}return RadioControlRegistry.prototype.add=function(e,t){this._accessors.push([e,t])},RadioControlRegistry.prototype.remove=function(e){for(var t=this._accessors.length-1;t>=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},RadioControlRegistry.prototype.select=function(e){var t=this;this._accessors.forEach(function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)})},RadioControlRegistry.prototype._isSameGroup=function(e,t){return!!e[0].control&&(e[0]._parent===t._control._parent&&e[1].name===t.name)},RadioControlRegistry}();T.decorators=[{type:r.Injectable}],T.ctorParameters=function(){return[]};var x=function(){function RadioControlValueAccessor(e,t,n,i){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=i,this.onChange=function(){},this.onTouched=function(){}}return RadioControlValueAccessor.prototype.ngOnInit=function(){this._control=this._injector.get(_),this._checkName(),this._registry.add(this._control,this)},RadioControlValueAccessor.prototype.ngOnDestroy=function(){this._registry.remove(this)},RadioControlValueAccessor.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},RadioControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},RadioControlValueAccessor.prototype.fireUncheck=function(e){this.writeValue(e)},RadioControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},RadioControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},RadioControlValueAccessor.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},RadioControlValueAccessor.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},RadioControlValueAccessor}();x.decorators=[{type:r.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[S]}]}],x.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef},{type:T},{type:r.Injector}]},x.propDecorators={name:[{type:r.Input}],formControlName:[{type:r.Input}],value:[{type:r.Input}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var D={provide:y,useExisting:n.i(r.forwardRef)(function(){return E}),multi:!0},E=function(){function RangeValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return RangeValueAccessor.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(e))},RangeValueAccessor.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},RangeValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},RangeValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},RangeValueAccessor}();E.decorators=[{type:r.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[D]}]}],E.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var I={provide:y,useExisting:n.i(r.forwardRef)(function(){return M}),multi:!0},M=function(){function SelectControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=r["ɵlooseIdentical"]}return Object.defineProperty(SelectControlValueAccessor.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),SelectControlValueAccessor.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=_buildValueString(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},SelectControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}},SelectControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},SelectControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},SelectControlValueAccessor.prototype._registerOption=function(){return(this._idCounter++).toString()},SelectControlValueAccessor.prototype._getOptionId=function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var i=n[t];if(this._compareWith(this._optionMap.get(i),e))return i}return null},SelectControlValueAccessor.prototype._getOptionValue=function(e){var t=_extractId(e);return this._optionMap.has(t)?this._optionMap.get(t):e},SelectControlValueAccessor}();M.decorators=[{type:r.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[I]}]}],M.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef}]},M.propDecorators={compareWith:[{type:r.Input}]};var P=function(){function NgSelectOption(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(NgSelectOption.prototype,"ngValue",{set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(_buildValueString(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectOption.prototype,"value",{set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),NgSelectOption.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},NgSelectOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectOption}();P.decorators=[{type:r.Directive,args:[{selector:"option"}]}],P.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:M,decorators:[{type:r.Optional},{type:r.Host}]}]},P.propDecorators={ngValue:[{type:r.Input,args:["ngValue"]}],value:[{type:r.Input,args:["value"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var k={provide:y,useExisting:n.i(r.forwardRef)(function(){return F}),multi:!0},F=function(){function SelectMultipleControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=r["ɵlooseIdentical"]}return Object.defineProperty(SelectMultipleControlValueAccessor.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),SelectMultipleControlValueAccessor.prototype.writeValue=function(e){var t=this;this.value=e;var n;if(Array.isArray(e)){var i=e.map(function(e){return t._getOptionId(e)});n=function(e,t){e._setSelected(i.indexOf(t.toString())>-1)}}else n=function(e,t){e._setSelected(!1)};this._optionMap.forEach(n)},SelectMultipleControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var i=[];if(n.hasOwnProperty("selectedOptions"))for(var r=n.selectedOptions,o=0;o<r.length;o++){var a=r.item(o),s=t._getOptionValue(a.value);i.push(s)}else for(var r=n.options,o=0;o<r.length;o++){var a=r.item(o);if(a.selected){var s=t._getOptionValue(a.value);i.push(s)}}t.value=i,e(i)}},SelectMultipleControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},SelectMultipleControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},SelectMultipleControlValueAccessor.prototype._registerOption=function(e){var t=(this._idCounter++).toString();return this._optionMap.set(t,e),t},SelectMultipleControlValueAccessor.prototype._getOptionId=function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var i=n[t];if(this._compareWith(this._optionMap.get(i)._value,e))return i}return null},SelectMultipleControlValueAccessor.prototype._getOptionValue=function(e){var t=_extractId$1(e);return this._optionMap.has(t)?this._optionMap.get(t)._value:e},SelectMultipleControlValueAccessor}();F.decorators=[{type:r.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[k]}]}],F.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef}]},F.propDecorators={compareWith:[{type:r.Input}]};var O=function(){function NgSelectMultipleOption(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(NgSelectMultipleOption.prototype,"ngValue",{set:function(e){null!=this._select&&(this._value=e,this._setElementValue(_buildValueString$1(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectMultipleOption.prototype,"value",{set:function(e){this._select?(this._value=e,this._setElementValue(_buildValueString$1(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)},enumerable:!0,configurable:!0}),NgSelectMultipleOption.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},NgSelectMultipleOption.prototype._setSelected=function(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)},NgSelectMultipleOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectMultipleOption}();O.decorators=[{type:r.Directive,args:[{selector:"option"}]}],O.ctorParameters=function(){return[{type:r.ElementRef},{type:r.Renderer2},{type:F,decorators:[{type:r.Optional},{type:r.Host}]}]},O.propDecorators={ngValue:[{type:r.Input,args:["ngValue"]}],value:[{type:r.Input,args:["value"]}]};var N=[g,E,C,M,F,x],R=function(e){function AbstractFormGroupDirective(){return null!==e&&e.apply(this,arguments)||this}return i.a(AbstractFormGroupDirective,e),AbstractFormGroupDirective.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},AbstractFormGroupDirective.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(AbstractFormGroupDirective.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"validator",{get:function(){return composeValidators(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._asyncValidators)},enumerable:!0,configurable:!0}),AbstractFormGroupDirective.prototype._checkParentType=function(){},AbstractFormGroupDirective}(c),V=function(){function AbstractControlStatus(e){this._cd=e}return Object.defineProperty(AbstractControlStatus.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),AbstractControlStatus}(),B={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},L=function(e){function NgControlStatus(t){return e.call(this,t)||this}return i.a(NgControlStatus,e),NgControlStatus}(V);L.decorators=[{type:r.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:B}]}],L.ctorParameters=function(){return[{type:_,decorators:[{type:r.Self}]}]};var j=function(e){function NgControlStatusGroup(t){return e.call(this,t)||this}return i.a(NgControlStatusGroup,e),NgControlStatusGroup}(V);j.decorators=[{type:r.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:B}]}],j.ctorParameters=function(){return[{type:c,decorators:[{type:r.Self}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var U="VALID",G="INVALID",q="PENDING",z="DISABLED",H=function(){function AbstractControl(e,t){this.validator=e,this.asyncValidator=t,this._onCollectionChange=function(){},this._pristine=!0,this._touched=!1,this._onDisabledChange=[]}return Object.defineProperty(AbstractControl.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valid",{get:function(){return this._status===U},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"invalid",{get:function(){return this._status===G},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pending",{get:function(){return this._status==q},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"disabled",{get:function(){return this._status===z},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"enabled",{get:function(){return this._status!==z},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),AbstractControl.prototype.setValidators=function(e){this.validator=coerceToValidator(e)},AbstractControl.prototype.setAsyncValidators=function(e){this.asyncValidator=coerceToAsyncValidator(e)},AbstractControl.prototype.clearValidators=function(){this.validator=null},AbstractControl.prototype.clearAsyncValidators=function(){this.asyncValidator=null},AbstractControl.prototype.markAsTouched=function(e){void 0===e&&(e={}),this._touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)},AbstractControl.prototype.markAsUntouched=function(e){void 0===e&&(e={}),this._touched=!1,this._forEachChild(function(e){e.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},AbstractControl.prototype.markAsDirty=function(e){void 0===e&&(e={}),this._pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)},AbstractControl.prototype.markAsPristine=function(e){void 0===e&&(e={}),this._pristine=!0,this._forEachChild(function(e){e.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},AbstractControl.prototype.markAsPending=function(e){void 0===e&&(e={}),this._status=q,this._parent&&!e.onlySelf&&this._parent.markAsPending(e)},AbstractControl.prototype.disable=function(e){void 0===e&&(e={}),this._status=z,this._errors=null,this._forEachChild(function(e){e.disable({onlySelf:!0})}),this._updateValue(),!1!==e.emitEvent&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(!!e.onlySelf),this._onDisabledChange.forEach(function(e){return e(!0)})},AbstractControl.prototype.enable=function(e){void 0===e&&(e={}),this._status=U,this._forEachChild(function(e){e.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(!!e.onlySelf),this._onDisabledChange.forEach(function(e){return e(!1)})},AbstractControl.prototype._updateAncestors=function(e){this._parent&&!e&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},AbstractControl.prototype.setParent=function(e){this._parent=e},AbstractControl.prototype.setValue=function(e,t){},AbstractControl.prototype.patchValue=function(e,t){},AbstractControl.prototype.reset=function(e,t){},AbstractControl.prototype.updateValueAndValidity=function(e){void 0===e&&(e={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this._errors=this._runValidator(),this._status=this._calculateStatus(),this._status!==U&&this._status!==q||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)},AbstractControl.prototype._updateTreeValidity=function(e){void 0===e&&(e={emitEvent:!0}),this._forEachChild(function(t){return t._updateTreeValidity(e)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})},AbstractControl.prototype._setInitialStatus=function(){this._status=this._allControlsDisabled()?z:U},AbstractControl.prototype._runValidator=function(){return this.validator?this.validator(this):null},AbstractControl.prototype._runAsyncValidator=function(e){var t=this;if(this.asyncValidator){this._status=q;var n=toObservable(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return t.setErrors(n,{emitEvent:e})})}},AbstractControl.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},AbstractControl.prototype.setErrors=function(e,t){void 0===t&&(t={}),this._errors=e,this._updateControlsErrors(!1!==t.emitEvent)},AbstractControl.prototype.get=function(e){return _find(this,e,".")},AbstractControl.prototype.getError=function(e,t){var n=t?this.get(t):this;return n&&n._errors?n._errors[e]:null},AbstractControl.prototype.hasError=function(e,t){return!!this.getError(e,t)},Object.defineProperty(AbstractControl.prototype,"root",{get:function(){for(var e=this;e._parent;)e=e._parent;return e},enumerable:!0,configurable:!0}),AbstractControl.prototype._updateControlsErrors=function(e){this._status=this._calculateStatus(),e&&this._statusChanges.emit(this._status),this._parent&&this._parent._updateControlsErrors(e)},AbstractControl.prototype._initObservables=function(){this._valueChanges=new r.EventEmitter,this._statusChanges=new r.EventEmitter},AbstractControl.prototype._calculateStatus=function(){return this._allControlsDisabled()?z:this._errors?G:this._anyControlsHaveStatus(q)?q:this._anyControlsHaveStatus(G)?G:U},AbstractControl.prototype._updateValue=function(){},AbstractControl.prototype._forEachChild=function(e){},AbstractControl.prototype._anyControls=function(e){},AbstractControl.prototype._allControlsDisabled=function(){},AbstractControl.prototype._anyControlsHaveStatus=function(e){return this._anyControls(function(t){return t.status===e})},AbstractControl.prototype._anyControlsDirty=function(){return this._anyControls(function(e){return e.dirty})},AbstractControl.prototype._anyControlsTouched=function(){return this._anyControls(function(e){return e.touched})},AbstractControl.prototype._updatePristine=function(e){void 0===e&&(e={}),this._pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},AbstractControl.prototype._updateTouched=function(e){void 0===e&&(e={}),this._touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},AbstractControl.prototype._isBoxedValue=function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e},AbstractControl.prototype._registerOnCollectionChange=function(e){this._onCollectionChange=e},AbstractControl}(),W=function(e){function FormControl(t,n,i){void 0===t&&(t=null);var r=e.call(this,coerceToValidator(n),coerceToAsyncValidator(i))||this;return r._onChange=[],r._applyFormState(t),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r._initObservables(),r}return i.a(FormControl,e),FormControl.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._value=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(function(e){return e(n._value,!1!==t.emitViewToModelChange)}),this.updateValueAndValidity(t)},FormControl.prototype.patchValue=function(e,t){void 0===t&&(t={}),this.setValue(e,t)},FormControl.prototype.reset=function(e,t){void 0===e&&(e=null),void 0===t&&(t={}),this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this._value,t)},FormControl.prototype._updateValue=function(){},FormControl.prototype._anyControls=function(e){return!1},FormControl.prototype._allControlsDisabled=function(){return this.disabled},FormControl.prototype.registerOnChange=function(e){this._onChange.push(e)},FormControl.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},FormControl.prototype.registerOnDisabledChange=function(e){this._onDisabledChange.push(e)},FormControl.prototype._forEachChild=function(e){},FormControl.prototype._applyFormState=function(e){this._isBoxedValue(e)?(this._value=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=e},FormControl}(H),X=function(e){function FormGroup(t,n,i){var r=e.call(this,n||null,i||null)||this;return r.controls=t,r._initObservables(),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return i.a(FormGroup,e),FormGroup.prototype.registerControl=function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)},FormGroup.prototype.addControl=function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.removeControl=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.contains=function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled},FormGroup.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),Object.keys(e).forEach(function(i){n._throwIfControlMissing(i),n.controls[i].setValue(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},FormGroup.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),Object.keys(e).forEach(function(i){n.controls[i]&&n.controls[i].patchValue(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},FormGroup.prototype.reset=function(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this._forEachChild(function(n,i){n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t),this._updatePristine(t),this._updateTouched(t)},FormGroup.prototype.getRawValue=function(){return this._reduceChildren({},function(e,t,n){return e[n]=t instanceof W?t.value:t.getRawValue(),e})},FormGroup.prototype._throwIfControlMissing=function(e){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[e])throw new Error("Cannot find form control with name: "+e+".")},FormGroup.prototype._forEachChild=function(e){var t=this;Object.keys(this.controls).forEach(function(n){return e(t.controls[n],n)})},FormGroup.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)})},FormGroup.prototype._updateValue=function(){this._value=this._reduceValue()},FormGroup.prototype._anyControls=function(e){var t=this,n=!1;return this._forEachChild(function(i,r){n=n||t.contains(r)&&e(i)}),n},FormGroup.prototype._reduceValue=function(){var e=this;return this._reduceChildren({},function(t,n,i){return(n.enabled||e.disabled)&&(t[i]=n.value),t})},FormGroup.prototype._reduceChildren=function(e,t){var n=e;return this._forEachChild(function(e,i){n=t(n,e,i)}),n},FormGroup.prototype._allControlsDisabled=function(){for(var e=0,t=Object.keys(this.controls);e<t.length;e++){var n=t[e];if(this.controls[n].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled},FormGroup.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},FormGroup}(H),K=function(e){function FormArray(t,n,i){var r=e.call(this,n||null,i||null)||this;return r.controls=t,r._initObservables(),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return i.a(FormArray,e),FormArray.prototype.at=function(e){return this.controls[e]},FormArray.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(FormArray.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),FormArray.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),e.forEach(function(e,i){n._throwIfControlMissing(i),n.at(i).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},FormArray.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),e.forEach(function(e,i){n.at(i)&&n.at(i).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},FormArray.prototype.reset=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={}),this._forEachChild(function(n,i){n.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t),this._updatePristine(t),this._updateTouched(t)},FormArray.prototype.getRawValue=function(){return this.controls.map(function(e){return e instanceof W?e.value:e.getRawValue()})},FormArray.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},FormArray.prototype._forEachChild=function(e){this.controls.forEach(function(t,n){e(t,n)})},FormArray.prototype._updateValue=function(){var e=this;this._value=this.controls.filter(function(t){return t.enabled||e.disabled}).map(function(e){return e.value})},FormArray.prototype._anyControls=function(e){return this.controls.some(function(t){return t.enabled&&e(t)})},FormArray.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){return e._registerControl(t)})},FormArray.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")})},FormArray.prototype._allControlsDisabled=function(){for(var e=0,t=this.controls;e<t.length;e++){if(t[e].enabled)return!1}return this.controls.length>0||this.disabled},FormArray.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},FormArray}(H),Y={provide:c,useExisting:n.i(r.forwardRef)(function(){return Z})},J=Promise.resolve(null),Z=function(e){function NgForm(t,n){var i=e.call(this)||this;return i._submitted=!1,i.ngSubmit=new r.EventEmitter,i.form=new X({},composeValidators(t),composeAsyncValidators(n)),i}return i.a(NgForm,e),Object.defineProperty(NgForm.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),NgForm.prototype.addControl=function(e){var t=this;J.then(function(){var n=t._findContainer(e.path);e._control=n.registerControl(e.name,e.control),setUpControl(e.control,e),e.control.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.getControl=function(e){return this.form.get(e.path)},NgForm.prototype.removeControl=function(e){var t=this;J.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},NgForm.prototype.addFormGroup=function(e){var t=this;J.then(function(){var n=t._findContainer(e.path),i=new X({});setUpFormContainer(i,e),n.registerControl(e.name,i),i.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.removeFormGroup=function(e){var t=this;J.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},NgForm.prototype.getFormGroup=function(e){return this.form.get(e.path)},NgForm.prototype.updateModel=function(e,t){var n=this;J.then(function(){n.form.get(e.path).setValue(t)})},NgForm.prototype.setValue=function(e){this.control.setValue(e)},NgForm.prototype.onSubmit=function(e){return this._submitted=!0,this.ngSubmit.emit(e),!1},NgForm.prototype.onReset=function(){this.resetForm()},NgForm.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this._submitted=!1},NgForm.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},NgForm}(c);Z.decorators=[{type:r.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[Y],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],Z.ctorParameters=function(){return[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Q={formControlName:'\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',formGroupName:'\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',formArrayName:'\n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });',ngModelGroup:'\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',ngModelWithFormGroup:'\n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  '},$=function(){function TemplateDrivenErrors(){}return TemplateDrivenErrors.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+Q.formControlName+"\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      "+Q.ngModelWithFormGroup)},TemplateDrivenErrors.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+Q.formGroupName+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+Q.ngModelGroup)},TemplateDrivenErrors.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},TemplateDrivenErrors.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+Q.formGroupName+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+Q.ngModelGroup)},TemplateDrivenErrors}(),ee={provide:c,useExisting:n.i(r.forwardRef)(function(){return te})},te=function(e){function NgModelGroup(t,n,i){var r=e.call(this)||this;return r._parent=t,r._validators=n,r._asyncValidators=i,r}return i.a(NgModelGroup,e),NgModelGroup.prototype._checkParentType=function(){this._parent instanceof NgModelGroup||this._parent instanceof Z||$.modelGroupParentException()},NgModelGroup}(R);te.decorators=[{type:r.Directive,args:[{selector:"[ngModelGroup]",providers:[ee],exportAs:"ngModelGroup"}]}],te.ctorParameters=function(){return[{type:c,decorators:[{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]}]},te.propDecorators={name:[{type:r.Input,args:["ngModelGroup"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var ne={provide:_,useExisting:n.i(r.forwardRef)(function(){return re})},ie=Promise.resolve(null),re=function(e){function NgModel(t,n,i,o){var a=e.call(this)||this;return a._control=new W,a._registered=!1,a.update=new r.EventEmitter,a._parent=t,a._rawValidators=n||[],a._rawAsyncValidators=i||[],a.valueAccessor=selectValueAccessor(a,o),a}return i.a(NgModel,e),NgModel.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),isPropertyUpdated(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},NgModel.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(NgModel.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"path",{get:function(){return this._parent?controlPath(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),NgModel.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},NgModel.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},NgModel.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},NgModel.prototype._setUpStandalone=function(){setUpControl(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},NgModel.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},NgModel.prototype._checkParentType=function(){!(this._parent instanceof te)&&this._parent instanceof R?$.formGroupNameException():this._parent instanceof te||this._parent instanceof Z||$.modelParentException()},NgModel.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||$.missingNameException()},NgModel.prototype._updateValue=function(e){var t=this;ie.then(function(){t.control.setValue(e,{emitViewToModelChange:!1})})},NgModel.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,i=""===n||n&&"false"!==n;ie.then(function(){i&&!t.control.disabled?t.control.disable():!i&&t.control.disabled&&t.control.enable()})},NgModel}(_);re.decorators=[{type:r.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[ne],exportAs:"ngModel"}]}],re.ctorParameters=function(){return[{type:c,decorators:[{type:r.Optional},{type:r.Host}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[y]}]}]},re.propDecorators={name:[{type:r.Input}],isDisabled:[{type:r.Input,args:["disabled"]}],model:[{type:r.Input,args:["ngModel"]}],options:[{type:r.Input,args:["ngModelOptions"]}],update:[{type:r.Output,args:["ngModelChange"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var oe=function(){function ReactiveErrors(){}return ReactiveErrors.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Q.formControlName)},ReactiveErrors.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+Q.formGroupName+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+Q.ngModelGroup)},ReactiveErrors.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+Q.formControlName)},ReactiveErrors.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Q.formGroupName)},ReactiveErrors.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        "+Q.formArrayName)},ReactiveErrors.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},ReactiveErrors}(),ae={provide:_,useExisting:n.i(r.forwardRef)(function(){return se})},se=function(e){function FormControlDirective(t,n,i){var o=e.call(this)||this;return o.update=new r.EventEmitter,o._rawValidators=t||[],o._rawAsyncValidators=n||[],o.valueAccessor=selectValueAccessor(o,i),o}return i.a(FormControlDirective,e),Object.defineProperty(FormControlDirective.prototype,"isDisabled",{set:function(e){oe.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlDirective.prototype.ngOnChanges=function(e){this._isControlChanged(e)&&(setUpControl(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),isPropertyUpdated(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(FormControlDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),FormControlDirective.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},FormControlDirective.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},FormControlDirective}(_);se.decorators=[{type:r.Directive,args:[{selector:"[formControl]",providers:[ae],exportAs:"ngForm"}]}],se.ctorParameters=function(){return[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[y]}]}]},se.propDecorators={form:[{type:r.Input,args:["formControl"]}],model:[{type:r.Input,args:["ngModel"]}],update:[{type:r.Output,args:["ngModelChange"]}],isDisabled:[{type:r.Input,args:["disabled"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var le={provide:c,useExisting:n.i(r.forwardRef)(function(){return ue})},ue=function(e){function FormGroupDirective(t,n){var i=e.call(this)||this;return i._validators=t,i._asyncValidators=n,i._submitted=!1,i.directives=[],i.form=null,i.ngSubmit=new r.EventEmitter,i}return i.a(FormGroupDirective,e),FormGroupDirective.prototype.ngOnChanges=function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(FormGroupDirective.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),FormGroupDirective.prototype.addControl=function(e){var t=this.form.get(e.path);return setUpControl(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t},FormGroupDirective.prototype.getControl=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.removeControl=function(e){remove(this.directives,e)},FormGroupDirective.prototype.addFormGroup=function(e){var t=this.form.get(e.path);setUpFormContainer(t,e),t.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormGroup=function(e){},FormGroupDirective.prototype.getFormGroup=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.addFormArray=function(e){var t=this.form.get(e.path);setUpFormContainer(t,e),t.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormArray=function(e){},FormGroupDirective.prototype.getFormArray=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.updateModel=function(e,t){this.form.get(e.path).setValue(t)},FormGroupDirective.prototype.onSubmit=function(e){return this._submitted=!0,this.ngSubmit.emit(e),!1},FormGroupDirective.prototype.onReset=function(){this.resetForm()},FormGroupDirective.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this._submitted=!1},FormGroupDirective.prototype._updateDomValue=function(){var e=this;this.directives.forEach(function(t){var n=e.form.get(t.path);t._control!==n&&(cleanUpControl(t._control,t),n&&setUpControl(n,t),t._control=n)}),this.form._updateTreeValidity({emitEvent:!1})},FormGroupDirective.prototype._updateRegistrations=function(){var e=this;this.form._registerOnCollectionChange(function(){return e._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},FormGroupDirective.prototype._updateValidators=function(){var e=composeValidators(this._validators);this.form.validator=f.compose([this.form.validator,e]);var t=composeAsyncValidators(this._asyncValidators);this.form.asyncValidator=f.composeAsync([this.form.asyncValidator,t])},FormGroupDirective.prototype._checkFormPresent=function(){this.form||oe.missingFormException()},FormGroupDirective}(c);ue.decorators=[{type:r.Directive,args:[{selector:"[formGroup]",providers:[le],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],ue.ctorParameters=function(){return[{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]}]},ue.propDecorators={form:[{type:r.Input,args:["formGroup"]}],ngSubmit:[{type:r.Output}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var ce={provide:c,useExisting:n.i(r.forwardRef)(function(){return de})},de=function(e){function FormGroupName(t,n,i){var r=e.call(this)||this;return r._parent=t,r._validators=n,r._asyncValidators=i,r}return i.a(FormGroupName,e),FormGroupName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&oe.groupParentException()},FormGroupName}(R);de.decorators=[{type:r.Directive,args:[{selector:"[formGroupName]",providers:[ce]}]}],de.ctorParameters=function(){return[{type:c,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]}]},de.propDecorators={name:[{type:r.Input,args:["formGroupName"]}]};var pe={provide:c,useExisting:n.i(r.forwardRef)(function(){return he})},he=function(e){function FormArrayName(t,n,i){var r=e.call(this)||this;return r._parent=t,r._validators=n,r._asyncValidators=i,r}return i.a(FormArrayName,e),FormArrayName.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},FormArrayName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(FormArrayName.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"validator",{get:function(){return composeValidators(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._asyncValidators)},enumerable:!0,configurable:!0}),FormArrayName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&oe.arrayParentException()},FormArrayName}(c);he.decorators=[{type:r.Directive,args:[{selector:"[formArrayName]",providers:[pe]}]}],he.ctorParameters=function(){return[{type:c,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]}]},he.propDecorators={name:[{type:r.Input,args:["formArrayName"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var fe={provide:_,useExisting:n.i(r.forwardRef)(function(){return ye})},ye=function(e){function FormControlName(t,n,i,o){var a=e.call(this)||this;return a._added=!1,a.update=new r.EventEmitter,a._parent=t,a._rawValidators=n||[],a._rawAsyncValidators=i||[],a.valueAccessor=selectValueAccessor(a,o),a}return i.a(FormControlName,e),Object.defineProperty(FormControlName.prototype,"isDisabled",{set:function(e){oe.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlName.prototype.ngOnChanges=function(e){this._added||this._setUpControl(),isPropertyUpdated(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},FormControlName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},FormControlName.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},Object.defineProperty(FormControlName.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),FormControlName.prototype._checkParentType=function(){!(this._parent instanceof de)&&this._parent instanceof R?oe.ngModelGroupException():this._parent instanceof de||this._parent instanceof ue||this._parent instanceof he||oe.controlParentException()},FormControlName.prototype._setUpControl=function(){this._checkParentType(),this._control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},FormControlName}(_);ye.decorators=[{type:r.Directive,args:[{selector:"[formControlName]",providers:[fe]}]}],ye.ctorParameters=function(){return[{type:c,decorators:[{type:r.Optional},{type:r.Host},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[d]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[p]}]},{type:Array,decorators:[{type:r.Optional},{type:r.Self},{type:r.Inject,args:[y]}]}]},ye.propDecorators={name:[{type:r.Input,args:["formControlName"]}],model:[{type:r.Input,args:["ngModel"]}],update:[{type:r.Output,args:["ngModelChange"]}],isDisabled:[{type:r.Input,args:["disabled"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var me={provide:d,useExisting:n.i(r.forwardRef)(function(){return ve}),multi:!0},ge={provide:d,useExisting:n.i(r.forwardRef)(function(){return be}),multi:!0},ve=function(){function RequiredValidator(){}return Object.defineProperty(RequiredValidator.prototype,"required",{get:function(){return this._required},set:function(e){this._required=null!=e&&!1!==e&&""+e!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),RequiredValidator.prototype.validate=function(e){return this.required?f.required(e):null},RequiredValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},RequiredValidator}();ve.decorators=[{type:r.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[me],host:{"[attr.required]":'required ? "" : null'}}]}],ve.ctorParameters=function(){return[]},ve.propDecorators={required:[{type:r.Input}]};var be=function(e){function CheckboxRequiredValidator(){return null!==e&&e.apply(this,arguments)||this}return i.a(CheckboxRequiredValidator,e),CheckboxRequiredValidator.prototype.validate=function(e){return this.required?f.requiredTrue(e):null},CheckboxRequiredValidator}(ve);be.decorators=[{type:r.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[ge],host:{"[attr.required]":'required ? "" : null'}}]}],be.ctorParameters=function(){return[]};var we={provide:d,useExisting:n.i(r.forwardRef)(function(){return Ae}),multi:!0},Ae=function(){function EmailValidator(){}return Object.defineProperty(EmailValidator.prototype,"email",{set:function(e){this._enabled=""===e||!0===e||"true"===e,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),EmailValidator.prototype.validate=function(e){return this._enabled?f.email(e):null},EmailValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},EmailValidator}();Ae.decorators=[{type:r.Directive,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[we]}]}],Ae.ctorParameters=function(){return[]},Ae.propDecorators={email:[{type:r.Input}]};var Ce={provide:d,useExisting:n.i(r.forwardRef)(function(){return _e}),multi:!0},_e=function(){function MinLengthValidator(){}return MinLengthValidator.prototype.ngOnChanges=function(e){"minlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},MinLengthValidator.prototype.validate=function(e){return null==this.minlength?null:this._validator(e)},MinLengthValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},MinLengthValidator.prototype._createValidator=function(){this._validator=f.minLength(parseInt(this.minlength,10))},MinLengthValidator}();_e.decorators=[{type:r.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[Ce],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],_e.ctorParameters=function(){return[]},_e.propDecorators={minlength:[{type:r.Input}]};var Se={provide:d,useExisting:n.i(r.forwardRef)(function(){return Te}),multi:!0},Te=function(){function MaxLengthValidator(){}return MaxLengthValidator.prototype.ngOnChanges=function(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},MaxLengthValidator.prototype.validate=function(e){return null!=this.maxlength?this._validator(e):null},MaxLengthValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},MaxLengthValidator.prototype._createValidator=function(){this._validator=f.maxLength(parseInt(this.maxlength,10))},MaxLengthValidator}();Te.decorators=[{type:r.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[Se],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],Te.ctorParameters=function(){return[]},Te.propDecorators={maxlength:[{type:r.Input}]};var xe={provide:d,useExisting:n.i(r.forwardRef)(function(){return De}),multi:!0},De=function(){function PatternValidator(){}return PatternValidator.prototype.ngOnChanges=function(e){"pattern"in e&&(this._createValidator(),this._onChange&&this._onChange())},PatternValidator.prototype.validate=function(e){return this._validator(e)},PatternValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},PatternValidator.prototype._createValidator=function(){this._validator=f.pattern(this.pattern)},PatternValidator}();De.decorators=[{type:r.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[xe],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],De.ctorParameters=function(){return[]},De.propDecorators={pattern:[{type:r.Input}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Ee=function(){function FormBuilder(){}return FormBuilder.prototype.group=function(e,t){void 0===t&&(t=null);var n=this._reduceControls(e),i=null!=t?t.validator:null,r=null!=t?t.asyncValidator:null;return new X(n,i,r)},FormBuilder.prototype.control=function(e,t,n){return new W(e,t,n)},FormBuilder.prototype.array=function(e,t,n){var i=this,r=e.map(function(e){return i._createControl(e)});return new K(r,t,n)},FormBuilder.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach(function(i){n[i]=t._createControl(e[i])}),n},FormBuilder.prototype._createControl=function(e){if(e instanceof W||e instanceof X||e instanceof K)return e;if(Array.isArray(e)){var t=e[0],n=e.length>1?e[1]:null,i=e.length>2?e[2]:null;return this.control(t,n,i)}return this.control(e)},FormBuilder}();Ee.decorators=[{type:r.Injectable}],Ee.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Ie=new r.Version("4.4.6"),Me=function(){function NgNoValidate(){}return NgNoValidate}();Me.decorators=[{type:r.Directive,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],Me.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Pe=[Me,P,O,w,C,E,g,M,F,x,L,j,ve,_e,Te,De,be,Ae],ke=[re,te,Z],Fe=[se,ue,ye,de,he],Oe=function(){function InternalFormsSharedModule(){}return InternalFormsSharedModule}();Oe.decorators=[{type:r.NgModule,args:[{declarations:Pe,exports:Pe}]}],Oe.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Ne=function(){function FormsModule(){}return FormsModule}();Ne.decorators=[{type:r.NgModule,args:[{declarations:ke,providers:[T],exports:[Oe,ke]}]}],Ne.ctorParameters=function(){return[]};var Re=function(){function ReactiveFormsModule(){}return ReactiveFormsModule}();Re.decorators=[{type:r.NgModule,args:[{declarations:[Fe],providers:[Ee,T],exports:[Oe,Fe]}]}],Re.ctorParameters=function(){return[]}},219:function(e,t,n){"use strict";function issueAnimationCommand(e,t,n,i,r){return e.setProperty(t,"@@"+n+":"+i,r)}function resolveElementFromTarget(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}function parseTriggerCallbackName(e){var t=e.indexOf(".");return[e.substring(0,t),e.substr(t+1)]}function instantiateSupportedAnimationDriver(){return n.i(s.d)()?new s.e:new s.f}function instantiateDefaultStyleNormalizer(){return new s.g}function instantiateRendererFactory(e,t,n){return new h(e,t,n)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(15),r=n(2),o=n(18),a=n(52),s=n(215);n.d(t,"BrowserAnimationsModule",function(){return w}),n.d(t,"NoopAnimationsModule",function(){return A}),n.d(t,"ɵBrowserAnimationBuilder",function(){return l}),n.d(t,"ɵBrowserAnimationFactory",function(){return u}),n.d(t,"ɵAnimationRenderer",function(){return y}),n.d(t,"ɵAnimationRendererFactory",function(){return h}),n.d(t,"ɵa",function(){return f}),n.d(t,"ɵf",function(){return v}),n.d(t,"ɵg",function(){return b}),n.d(t,"ɵb",function(){return m}),n.d(t,"ɵd",function(){return instantiateDefaultStyleNormalizer}),n.d(t,"ɵe",function(){return instantiateRendererFactory}),n.d(t,"ɵc",function(){return instantiateSupportedAnimationDriver});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var l=function(e){function BrowserAnimationBuilder(t,n){var i=e.call(this)||this;i._nextAnimationId=0;var o={id:"0",encapsulation:r.ViewEncapsulation.None,styles:[],data:{animation:[]}};return i._renderer=t.createRenderer(n.body,o),i}return i.a(BrowserAnimationBuilder,e),BrowserAnimationBuilder.prototype.build=function(e){var t=this._nextAnimationId.toString();this._nextAnimationId++;var i=Array.isArray(e)?n.i(a.sequence)(e):e;return issueAnimationCommand(this._renderer,null,t,"register",[i]),new u(t,this._renderer)},BrowserAnimationBuilder}(a.AnimationBuilder);l.decorators=[{type:r.Injectable}],l.ctorParameters=function(){return[{type:r.RendererFactory2},{type:void 0,decorators:[{type:r.Inject,args:[o.DOCUMENT]}]}]};var u=function(e){function BrowserAnimationFactory(t,n){var i=e.call(this)||this;return i._id=t,i._renderer=n,i}return i.a(BrowserAnimationFactory,e),BrowserAnimationFactory.prototype.create=function(e,t){return new c(this._id,e,t||{},this._renderer)},BrowserAnimationFactory}(a.AnimationFactory),c=function(){function RendererAnimationPlayer(e,t,n,i){this.id=e,this.element=t,this._renderer=i,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return RendererAnimationPlayer.prototype._listen=function(e,t){return this._renderer.listen(this.element,"@@"+this.id+":"+e,t)},RendererAnimationPlayer.prototype._command=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return issueAnimationCommand(this._renderer,this.element,this.id,e,t)},RendererAnimationPlayer.prototype.onDone=function(e){this._listen("done",e)},RendererAnimationPlayer.prototype.onStart=function(e){this._listen("start",e)},RendererAnimationPlayer.prototype.onDestroy=function(e){this._listen("destroy",e)},RendererAnimationPlayer.prototype.init=function(){this._command("init")},RendererAnimationPlayer.prototype.hasStarted=function(){return this._started},RendererAnimationPlayer.prototype.play=function(){this._command("play"),this._started=!0},RendererAnimationPlayer.prototype.pause=function(){this._command("pause")},RendererAnimationPlayer.prototype.restart=function(){this._command("restart")},RendererAnimationPlayer.prototype.finish=function(){this._command("finish")},RendererAnimationPlayer.prototype.destroy=function(){this._command("destroy")},RendererAnimationPlayer.prototype.reset=function(){this._command("reset")},RendererAnimationPlayer.prototype.setPosition=function(e){this._command("setPosition",e)},RendererAnimationPlayer.prototype.getPosition=function(){return 0},RendererAnimationPlayer}(),d="@",p="@.disabled",h=function(){function AnimationRendererFactory(e,t,n){this.delegate=e,this.engine=t,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=function(e,t){t&&t.parentNode(e)&&t.removeChild(e.parentNode,e)}}return AnimationRendererFactory.prototype.createRenderer=function(e,t){var n=this,i=this.delegate.createRenderer(e,t);if(!(e&&t&&t.data&&t.data.animation)){var r=this._rendererCache.get(i);return r||(r=new f("",i,this.engine),this._rendererCache.set(i,r)),r}var o=t.id,a=t.id+"-"+this._currentId;return this._currentId++,this.engine.register(a,e),t.data.animation.forEach(function(t){return n.engine.registerTrigger(o,a,e,t.name,t)}),new y(this,a,i,this.engine)},AnimationRendererFactory.prototype.begin=function(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()},AnimationRendererFactory.prototype._scheduleCountTask=function(){var e=this;Zone.current.scheduleMicroTask("incremenet the animation microtask",function(){return e._microtaskId++})},AnimationRendererFactory.prototype.scheduleListenerCallback=function(e,t,n){var i=this;if(e>=0&&e<this._microtaskId)return void this._zone.run(function(){return t(n)});0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(function(){i._zone.run(function(){i._animationCallbacksBuffer.forEach(function(e){(0,e[0])(e[1])}),i._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([t,n])},AnimationRendererFactory.prototype.end=function(){var e=this;this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(function(){e._scheduleCountTask(),e.engine.flush(e._microtaskId)}),this.delegate.end&&this.delegate.end()},AnimationRendererFactory.prototype.whenRenderingDone=function(){return this.engine.whenRenderingDone()},AnimationRendererFactory}();h.decorators=[{type:r.Injectable}],h.ctorParameters=function(){return[{type:r.RendererFactory2},{type:s.a},{type:r.NgZone}]};var f=function(){function BaseAnimationRenderer(e,t,n){this.namespaceId=e,this.delegate=t,this.engine=n,this.destroyNode=this.delegate.destroyNode?function(e){return t.destroyNode(e)}:null}return Object.defineProperty(BaseAnimationRenderer.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),BaseAnimationRenderer.prototype.destroy=function(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()},BaseAnimationRenderer.prototype.createElement=function(e,t){return this.delegate.createElement(e,t)},BaseAnimationRenderer.prototype.createComment=function(e){return this.delegate.createComment(e)},BaseAnimationRenderer.prototype.createText=function(e){return this.delegate.createText(e)},BaseAnimationRenderer.prototype.appendChild=function(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)},BaseAnimationRenderer.prototype.insertBefore=function(e,t,n){this.delegate.insertBefore(e,t,n),this.engine.onInsert(this.namespaceId,t,e,!0)},BaseAnimationRenderer.prototype.removeChild=function(e,t){this.engine.onRemove(this.namespaceId,t,this.delegate)},BaseAnimationRenderer.prototype.selectRootElement=function(e){return this.delegate.selectRootElement(e)},BaseAnimationRenderer.prototype.parentNode=function(e){return this.delegate.parentNode(e)},BaseAnimationRenderer.prototype.nextSibling=function(e){return this.delegate.nextSibling(e)},BaseAnimationRenderer.prototype.setAttribute=function(e,t,n,i){this.delegate.setAttribute(e,t,n,i)},BaseAnimationRenderer.prototype.removeAttribute=function(e,t,n){this.delegate.removeAttribute(e,t,n)},BaseAnimationRenderer.prototype.addClass=function(e,t){this.delegate.addClass(e,t)},BaseAnimationRenderer.prototype.removeClass=function(e,t){this.delegate.removeClass(e,t)},BaseAnimationRenderer.prototype.setStyle=function(e,t,n,i){this.delegate.setStyle(e,t,n,i)},BaseAnimationRenderer.prototype.removeStyle=function(e,t,n){this.delegate.removeStyle(e,t,n)},BaseAnimationRenderer.prototype.setProperty=function(e,t,n){t.charAt(0)==d&&t==p?this.disableAnimations(e,!!n):this.delegate.setProperty(e,t,n)},BaseAnimationRenderer.prototype.setValue=function(e,t){this.delegate.setValue(e,t)},BaseAnimationRenderer.prototype.listen=function(e,t,n){return this.delegate.listen(e,t,n)},BaseAnimationRenderer.prototype.disableAnimations=function(e,t){this.engine.disableAnimations(e,t)},BaseAnimationRenderer}(),y=function(e){function AnimationRenderer(t,n,i,r){var o=e.call(this,n,i,r)||this;return o.factory=t,o.namespaceId=n,o}return i.a(AnimationRenderer,e),AnimationRenderer.prototype.setProperty=function(e,t,n){t.charAt(0)==d?"."==t.charAt(1)&&t==p?(n=void 0===n||!!n,this.disableAnimations(e,n)):this.engine.process(this.namespaceId,e,t.substr(1),n):this.delegate.setProperty(e,t,n)},AnimationRenderer.prototype.listen=function(e,t,n){var i=this;if(t.charAt(0)==d){var r=resolveElementFromTarget(e),o=t.substr(1),a="";return o.charAt(0)!=d&&(s=parseTriggerCallbackName(o),o=s[0],a=s[1]),this.engine.listen(this.namespaceId,r,o,a,function(e){var t=e._data||-1;i.factory.scheduleListenerCallback(t,n,e)})}return this.delegate.listen(e,t,n);var s},AnimationRenderer}(f),m=function(e){function InjectableAnimationEngine(t,n){return e.call(this,t,n)||this}return i.a(InjectableAnimationEngine,e),InjectableAnimationEngine}(s.a);m.decorators=[{type:r.Injectable}],m.ctorParameters=function(){return[{type:s.b},{type:s.c}]};var g=[{provide:a.AnimationBuilder,useClass:l},{provide:s.c,useFactory:instantiateDefaultStyleNormalizer},{provide:s.a,useClass:m},{provide:r.RendererFactory2,useFactory:instantiateRendererFactory,deps:[o["ɵDomRendererFactory2"],s.a,r.NgZone]}],v=[{provide:s.b,useFactory:instantiateSupportedAnimationDriver}].concat(g),b=[{provide:s.b,useClass:s.f}].concat(g),w=function(){function BrowserAnimationsModule(){}return BrowserAnimationsModule}();w.decorators=[{type:r.NgModule,args:[{exports:[o.BrowserModule],providers:v}]}],w.ctorParameters=function(){return[]};var A=function(){function NoopAnimationsModule(){}return NoopAnimationsModule}();A.decorators=[{type:r.NgModule,args:[{exports:[o.BrowserModule],providers:b}]}],A.ctorParameters=function(){return[]}},221:function(e,t,n){"use strict";function fakeBackendFactory(e,t,n){return e.connections.subscribe(function(e){var r={username:"xboxhttp",password:"xboxhttp"};setTimeout(function(){var s=e.request.url.toCamelCase();if(s=s.indexOf("?")>=0?s.slice(0,s.indexOf("?")):s,console.log("fakeBackend -------------\x3e",i.RequestMethod[e.request.method],e.request.url,s,e.request),s.startsWith("titleFile?")){var l=new i.Http(n,t),u=e.request.url.replace("title/file?path=","http://localhost:8000/_/Phoenix/NOVA/webui/getGameFile/path/"),c=new i.RequestOptions({method:e.request.method,headers:e.request.headers,body:e.request.getBody(),url:u,withCredentials:e.request.withCredentials,responseType:e.request.responseType});return void l.request(e.request.url,c).subscribe(function(t){return e.mockRespond(t)},function(t){return e.mockError(t)})}if(s.startsWith("image")){var l=new i.Http(n,t),u=e.request.url.replace("image/profile?uuid","http://localhost:8000/_/Phoenix/NOVA/webui/getProfileImage%20uuid");u=u.replace("image/achievement?uuid","http://localhost:8000/_/Phoenix/NOVA/webui/getAchievementImage%20uuid"),u=u.replace("image/screencapture?uuid","http://localhost:8000/_/Phoenix/NOVA/webui/getScreenCaptureImage%20uuid"),console.log("===========>",u);var c=new i.RequestOptions({method:e.request.method,headers:e.request.headers,body:e.request.getBody(),url:u,withCredentials:e.request.withCredentials,responseType:e.request.responseType});return void l.request(e.request.url,c).subscribe(function(t){return e.mockRespond(t)},function(t){return e.mockError(t)})}if("authenticate"===s||e.request.headers.get("Authorization")==="Bearer "+a.DataJsons.POST.authenticate[0].token){if(e.request.method===i.RequestMethod.Get&&(e.request.url.endsWith("/title/live")?e.mockRespond(new i.Response(new i.ResponseOptions({status:200,body:o.LiveXmls[Math.floor(Math.random()*o.LiveXmls.length)]}))):s in a.DataJsons.GET&&a.DataJsons.GET[s].length>0?e.mockRespond(new i.Response(new i.ResponseOptions({status:200,body:a.DataJsons.GET[s][Math.floor(Math.random()*a.DataJsons.GET[s].length)]}))):(console.log("fail get",e.request),e.mockError(new i.Response(new i.ResponseOptions({status:404,statusText:"Not Found"}))))),e.request.method===i.RequestMethod.Post){if("titleLaunch"===s)return setInterval(function(){console.log("update notification before",a.DataJsons.GET.updateNotification[0]),a.DataJsons.GET.updateNotification[0]=JSON.parse(JSON.stringify(a.DataJsons.GET.updateNotification[0])),a.DataJsons.GET.updateNotification[0].title+=Math.round(Math.random()),a.DataJsons.GET.updateNotification[0].profiles+=Math.round(Math.random()),a.DataJsons.GET.updateNotification[0].achievements+=Math.round(Math.random()),a.DataJsons.GET.updateNotification[0].screencapture+=Math.round(Math.random()),console.log("update notification after",a.DataJsons.GET.updateNotification[0])},4e4),void e.mockRespond(new i.Response(new i.ResponseOptions({status:202})));if("threadState"===s){var d=e.request.json();a.DataJsons.GET.threadState[0].state="1"===d.get("suspend")?1:0;var p=new i.Headers;return p.set("X-Security-Enabled","0"),void e.mockRespond(new i.Response(new i.ResponseOptions({status:202,headers:p})))}if("titleLiveCache"===s){var d=e.request.json();a.DataJsons.GET[s].push(JSON.parse(d.get("liveinfo"))),e.mockRespond(new i.Response(new i.ResponseOptions({status:201})))}else if(e.request.url.endsWith("/authenticate")){var d=e.request.json();console.log(e.request.json(),e.request.text()),d.get("username")===r.username&&d.get("password")===r.password?e.mockRespond(new i.Response(new i.ResponseOptions({status:200,body:a.DataJsons.POST[s][Math.floor(Math.random()*a.DataJsons.POST[s].length)]}))):e.mockError(new i.Response(new i.ResponseOptions({status:401,statusText:"Not Authorized"})))}else console.log("fail post",e.request),e.mockError(new i.Response(new i.ResponseOptions({status:404,statusText:"Not Found"})))}if(e.request.method===i.RequestMethod.Delete)if("screencapture"===s){var d=new URL(e.request.url,"http://localhost:8080").searchParams,h=d.get("uuid"),f=a.DataJsons.GET.screencaptureMetaList[0].findIndex(function(e){return e.filename===h});if(f>=0){var p=new i.Headers;p.set("X-Security-Enabled","1"),a.DataJsons.GET.screencaptureMetaList[0].splice(f,1),e.mockRespond(new i.Response(new i.ResponseOptions({status:202,body:"",headers:p})))}else e.mockError(new i.Response(new i.ResponseOptions({status:400,statusText:"Bad Request"})))}else e.mockError(new i.Response(new i.ResponseOptions({status:404,statusText:"Not Found"})))}else e.mockError(new i.Response(new i.ResponseOptions({status:401,statusText:"Not Authorized"})))},500+500*Math.random())}),new i.Http(e,t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(11),r=n(81),o=n(223),a=n(222);t.fakeBackendFactory=fakeBackendFactory,t.fakeBackendProvider={provide:i.Http,useFactory:fakeBackendFactory,deps:[r.MockBackend,i.BaseRequestOptions,i.XHRBackend]}},222:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataJsons={GET:{achievement:[[{id:1,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"No Man Left Behind",description:"Rescued Woods.",unachieved:"Rescue Woods."}},{id:2,imageid:1,cred:20,type:2,hidden:1,strings:{caption:"Gathering Storm",description:"Investigated the jungle facility.",unachieved:"Investigate the jungle facility."}},{id:3,imageid:1,cred:20,type:3,hidden:0,strings:{caption:"Shifting Sands",description:"Gathered intel on Raul Menendez from Mullah Rahmaan.",unachieved:"Gather intel on Raul Menendez from Mullah Rahmaan."}},{id:4,imageid:1,cred:20,type:4,hidden:0,strings:{caption:"Driven by Rage",description:"Taken down Menendez and his operation.",unachieved:"Take down Menendez and his operation."}},{id:5,imageid:1,cred:20,type:5,hidden:0,strings:{caption:"Waterlogged",description:"Gathered information on Raul Menendez' suspected terrorist plot.",unachieved:"Gather information on Raul Menendez' suspected terrorist plot."}},{id:6,imageid:1,cred:20,type:6,hidden:0,strings:{caption:"What Happens in Colossus...",description:"Found the Karma weapon.",unachieved:"Find the Karma weapon."}},{id:7,imageid:1,cred:20,type:7,hidden:0,strings:{caption:"False Profit",description:"Captured Manuel Noriega and bring him to justice.",unachieved:"Capture Manuel Noriega and bring him to justice."}},{id:8,imageid:1,cred:20,type:8,hidden:0,strings:{caption:"Deep Cover",description:"Captured Menendez.",unachieved:"Capture Menendez."}},{id:9,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"Sinking Star",description:"Interrogate Menendez.",unachieved:"Interrogate Menendez."}},{id:10,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"Late for the Prom",description:"Escort the president to the secure location in downtown LA.",unachieved:"Escort the president to the secure location in downtown LA."}},{id:11,imageid:1,cred:50,type:1,hidden:1,strings:{caption:"Death from Above",description:"Stop Menendez once and for all.",unachieved:"Stop Menendez once and for all."}},{id:12,imageid:1,cred:50,type:1,hidden:1,strings:{caption:"Old Fashioned",description:"Complete 'Pyrrhic Victory', 'Old Wounds', 'Time And Fate', and 'Suffer With Me' in Veteran.",unachieved:"Complete 'Pyrrhic Victory', 'Old Wounds', 'Time And Fate', and 'Suffer With Me' in Veteran."}},{id:13,imageid:1,cred:50,type:1,hidden:1,strings:{caption:"Futurist",description:"Complete all future levels in veteran.",unachieved:"Complete all future levels in veteran."}},{id:14,imageid:1,cred:50,type:1,hidden:1,strings:{caption:"Giant Accomplishment",description:"Complete all challenges in Black Ops II.",unachieved:"Complete all challenges in Black Ops II."}},{id:15,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Mission Complete",description:"Complete all challenges in a level.",unachieved:"Complete all challenges in a level."}},{id:16,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Just Gettin' Started",description:"Complete 1 challenge in any level.",unachieved:"Complete 1 challenge in any level."}},{id:17,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Singapore Sling",description:"Successfully neutralize the SDC freighter at Keppel Terminal.",unachieved:"Successfully neutralize the SDC freighter at Keppel Terminal."}},{id:18,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Desert Storm",description:"Successfully escort the VIPs to safety.",unachieved:"Successfully escort the VIPs to safety."}},{id:19,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Defender ",description:"Successfully defend FOB Spectre from incursion.",unachieved:"Successfully defend FOB Spectre from incursion."}},{id:20,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Black Ops II Master",description:"Complete the campaign on Hardened or Veteran difficulty.",unachieved:"Complete the campaign on Hardened or Veteran difficulty."}},{id:21,imageid:1,cred:25,type:1,hidden:1,strings:{caption:"Art of War",description:"Successfully assassinate SDC Chairman Tian Zhao.",unachieved:"Successfully assassinate SDC Chairman Tian Zhao."}},{id:22,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Blind Date",description:"Successfully rescue HVI.",unachieved:"Successfully rescue HVI."}},{id:23,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Family Reunion",description:"There are two futures.",unachieved:"There are two futures."}},{id:24,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Hey Good Looking",description:"Plastic surgery avoided",unachieved:"Plastic surgery avoided"}},{id:25,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Showdown",description:"A duel between rivals",unachieved:"A duel between rivals"}},{id:26,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Dirty Business",description:"Listen and think before you shoot.",unachieved:"Listen and think before you shoot."}},{id:27,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Ship Shape",description:"Reinforcements on the way.",unachieved:"Reinforcements on the way."}},{id:28,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Dead or Alive",description:"Jailor or executioner.",unachieved:"Jailor or executioner."}},{id:29,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Ultimate Sacrifice",description:"Only one can survive.",unachieved:"Only one can survive."}},{id:30,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"Good Karma",description:"Crack the celerium worm.",unachieved:"Crack the celerium worm."}},{id:31,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"High IQ",description:"Collect all intel.",unachieved:"Collect all intel."}},{id:32,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Back in Time",description:"Use a future weapon in the past.",unachieved:"Use a future weapon in the past."}},{id:33,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Man of the People",description:"Stop the brutality inflicted by the PDF.",unachieved:"Stop the brutality inflicted by the PDF."}},{id:34,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Gun Nut",description:"Complete a level with customized loadout.",unachieved:"Complete a level with customized loadout."}},{id:35,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Ten K",description:"Minimum score 10k in every mission",unachieved:"Minimum score 10k in every mission"}},{id:36,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Welcome to the Club",description:"Reach Sergeant (Level 10) in multiplayer Public Match.",unachieved:"Reach Sergeant (Level 10) in multiplayer Public Match."}},{id:37,imageid:1,cred:50,type:1,hidden:1,strings:{caption:"Welcome to the Penthouse",description:"Prestige once in multiplayer Public Match.",unachieved:"Prestige once in multiplayer Public Match."}},{id:38,imageid:1,cred:20,type:1,hidden:1,strings:{caption:"Big Leagues",description:"Win 5 multiplayer League Play games after being placed in a division.",unachieved:"Win 5 multiplayer League Play games after being placed in a division."}},{id:39,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Trained Up",description:"Win 10 multiplayer games while playing in Combat Training playlists.",unachieved:"Win 10 multiplayer games while playing in Combat Training playlists."}},{id:40,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Party Animal",description:"Win 10 multiplayer games while playing in Party Games playlists.",unachieved:"Win 10 multiplayer games while playing in Party Games playlists."}},{id:41,imageid:1,cred:75,type:1,hidden:1,strings:{caption:"Tower of Babble",description:"In TranZit, obey the voices.",unachieved:"In TranZit, obey the voices."}},{id:42,imageid:1,cred:30,type:1,hidden:1,strings:{caption:"Don't Fire Until You See",description:"In TranZit, have all doors opened without being set on fire.",unachieved:"In TranZit, have all doors opened without being set on fire."}},{id:43,imageid:1,cred:5,type:1,hidden:1,strings:{caption:"The Lights Of Their Eyes",description:"In Green Run, pacify at least 10 zombies with 1 EMP.",unachieved:"In Green Run, pacify at least 10 zombies with 1 EMP."}},{id:44,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"Undead Man's Party Bus",description:"In TranZit, complete all additions to the bus in 1 game.",unachieved:"In TranZit, complete all additions to the bus in 1 game."}},{id:45,imageid:1,cred:5,type:1,hidden:1,strings:{caption:"Dance On My Grave",description:"In Green Run, acquire your Tombstone.",unachieved:"In Green Run, acquire your Tombstone."}},{id:46,imageid:1,cred:25,type:1,hidden:1,strings:{caption:"Standard Equipment May Vary",description:"In TranZit, acquire 4 different equippable items in 1 game.",unachieved:"In TranZit, acquire 4 different equippable items in 1 game."}},{id:47,imageid:1,cred:15,type:1,hidden:1,strings:{caption:"You Have No Power Over Me",description:"In TranZit, defeat 'him' without being attacked by 'him'.",unachieved:"In TranZit, defeat 'him' without being attacked by 'him'."}},{id:48,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"I Don't Think They Exist",description:"In TranZit, kill one of the denizens of the forest while it is latched onto you.",unachieved:"In TranZit, kill one of the denizens of the forest while it is latched onto you."}},{id:49,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Fuel Efficient",description:"In TranZit, use an alternative mode of transportation.",unachieved:"In TranZit, use an alternative mode of transportation."}},{id:50,imageid:1,cred:10,type:1,hidden:1,strings:{caption:"Happy Hour",description:"In TranZit, buy 2 different perks before turning on the power.",unachieved:"In TranZit, buy 2 different perks before turning on the power."}}],[{id:14,imageid:1,cred:10,type:1,hidden:0,strings:{caption:"A Comfortable Pace",description:"Clear mission 11 in Human Mode.",unachieved:"Clear mission 11 in Human Mode."}},{id:15,imageid:2,cred:10,type:1,hidden:0,strings:{caption:"Easy Does It",description:"Clear all missions in Human Mode.",unachieved:"Clear all missions in Human Mode."}},{id:16,imageid:3,cred:10,type:1,hidden:0,strings:{caption:"Half Way There",description:"Clear mission 11 in Devil Hunter Mode.",unachieved:"Clear mission 11 in Devil Hunter Mode."}},{id:17,imageid:4,cred:20,type:1,hidden:0,strings:{caption:"Done and Done",description:"Clear all missions in Devil Hunter Mode.",unachieved:"Clear all missions in Devil Hunter Mode."}},{id:18,imageid:5,cred:10,type:1,hidden:0,strings:{caption:"Rock and a Hard Place",description:"Clear mission 11 in Son of Sparda Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:19,imageid:6,cred:30,type:1,hidden:0,strings:{caption:"Hardly A Simple Task",description:"Clear all missions in Son of Sparda Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:20,imageid:7,cred:10,type:1,hidden:0,strings:{caption:"Easier Said Than Done",description:"Clear mission 11 in Dante Must Die Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:21,imageid:8,cred:40,type:1,hidden:0,strings:{caption:"All Bow Before You",description:"Clear all missions in Dante Must Die Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:22,imageid:9,cred:10,type:1,hidden:0,strings:{caption:"Step into the Light",description:"Clear all missions in Heaven or Hell Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:23,imageid:10,cred:10,type:1,hidden:0,strings:{caption:"Tonight, We Dine in Hell",description:"Clear all missions in Hell and Hell Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:24,imageid:11,cred:20,type:1,hidden:0,strings:{caption:"The Best of the Rest",description:"Clear all missions in Human Mode with an S ranking.",unachieved:"Clear all missions in Human Mode with an S ranking."}},{id:25,imageid:12,cred:30,type:1,hidden:0,strings:{caption:"A Cut Above",description:"Clear all missions in Devil Hunter Mode with an S ranking.",unachieved:"Clear all missions in Devil Hunter Mode with an S ranking."}},{id:26,imageid:13,cred:40,type:1,hidden:0,strings:{caption:"A Stunning Feat",description:"Clear all missions in Son of Sparda Mode with an S ranking.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:27,imageid:14,cred:50,type:1,hidden:0,strings:{caption:"Never Say Die",description:"Clear all missions in Dante Must Die Mode with an S ranking.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:28,imageid:15,cred:50,type:1,hidden:0,strings:{caption:"A Throne of Glory",description:"Clear all game modes.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:29,imageid:16,cred:10,type:1,hidden:0,strings:{caption:"Nothing Left Unsaid",description:"Clear all secret missions.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:30,imageid:17,cred:10,type:1,hidden:0,strings:{caption:"The First Circle",description:"Clear stage 10 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:31,imageid:18,cred:10,type:1,hidden:0,strings:{caption:"The Second Circle",description:"Clear stage 20 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:32,imageid:19,cred:10,type:1,hidden:0,strings:{caption:"The Third Circle",description:"Clear stage 30 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:33,imageid:20,cred:10,type:1,hidden:0,strings:{caption:"The Fourth Circle",description:"Clear stage 40 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:34,imageid:21,cred:10,type:1,hidden:0,strings:{caption:"The Fifth Circle",description:"Clear stage 50 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:35,imageid:22,cred:10,type:1,hidden:0,strings:{caption:"The Sixth Circle",description:"Clear stage 60 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:36,imageid:23,cred:10,type:1,hidden:0,strings:{caption:"The Seventh Circle",description:"Clear stage 70 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:37,imageid:24,cred:10,type:1,hidden:0,strings:{caption:"The Eight Circle",description:"Clear stage 80 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:38,imageid:25,cred:10,type:1,hidden:0,strings:{caption:"The Ninth Circle",description:"Clear stage 90 of Bloody Palace Mode.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:39,imageid:26,cred:40,type:1,hidden:0,strings:{caption:"Covered in Blood",description:"Clear all Bloody Palace Mode stages.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:40,imageid:27,cred:50,type:1,hidden:0,strings:{caption:"King of the Palace",description:"Clear all Bloody Palace Mode stages with an S ranking.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:41,imageid:28,cred:20,type:1,hidden:0,strings:{caption:"Speak of the Devil",description:"Clear the game with Super Nero (Dante). ",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:42,imageid:29,cred:10,type:1,hidden:0,strings:{caption:"Smokin'!",description:"Complete a Stylish Rank S (Smokin'!) combo.",unachieved:"Complete a Stylish Rank S (Smokin'!) combo."}},{id:43,imageid:30,cred:10,type:1,hidden:0,strings:{caption:"Smokin' Style!!",description:"Complete a Stylish Rank SS (Smokin' Style!!) combo.",unachieved:"Complete a Stylish Rank SS (Smokin' Style!!) combo."}},{id:44,imageid:31,cred:10,type:1,hidden:0,strings:{caption:"Smokin' Sick Style!!!",description:"Complete a Stylish Rank SSS (Smokin' Sick Style!!!) combo.",unachieved:"Complete a Stylish Rank SSS (Smokin' Sick Style!!!) combo."}},{id:45,imageid:32,cred:10,type:1,hidden:0,strings:{caption:"Simply Spectacular",description:"Complete a mission with an S ranking.",unachieved:"Complete a mission with an S ranking."}},{id:46,imageid:33,cred:10,type:1,hidden:0,strings:{caption:"Modus Vivendi",description:"Extend the Vitality Gauge to maximum capacity.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:47,imageid:34,cred:10,type:1,hidden:0,strings:{caption:"Bat Out of Hell",description:"Extend the Devil Trigger Gauge to maximum capacity.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:48,imageid:35,cred:10,type:1,hidden:0,strings:{caption:"River of Red",description:"Acquire 10,000 Red Orbs.",unachieved:"Acquire 10,000 Red Orbs."}},{id:49,imageid:36,cred:20,type:1,hidden:0,strings:{caption:"Your Cup Runeth Over",description:"Acquire 100,000 Red Orbs.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:50,imageid:37,cred:40,type:1,hidden:0,strings:{caption:"Red Orb Millionaire",description:"Acquire 1,000,000 Red Orbs.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:51,imageid:38,cred:10,type:1,hidden:0,strings:{caption:"Filled with Pride",description:"Acquire 10,000 Proud Souls.",unachieved:"Acquire 10,000 Proud Souls."}},{id:52,imageid:39,cred:20,type:1,hidden:0,strings:{caption:"Brimming with Pride",description:"Acquire 100,000 Proud Souls.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:53,imageid:40,cred:40,type:1,hidden:0,strings:{caption:"Proud Millionaire",description:"Acquire 1,000,000 Proud Souls.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:54,imageid:41,cred:10,type:1,hidden:0,strings:{caption:"Rookie Devil Hunter",description:"Defeat a total of 100 enemies.",unachieved:"Defeat a total of 100 enemies."}},{id:55,imageid:42,cred:30,type:1,hidden:0,strings:{caption:"Skilled Devil Hunter",description:"Defeat a total of 1,000 enemies.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:56,imageid:43,cred:50,type:1,hidden:0,strings:{caption:"Legendary Devil Hunter",description:"Defeat a total of 10,000 enemies.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:57,imageid:44,cred:50,type:1,hidden:0,strings:{caption:"Item Collector",description:"Acquire a maximum number of all items.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:58,imageid:45,cred:50,type:1,hidden:0,strings:{caption:"Skill Collector - Nero",description:"Acquire all of Nero's skills.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}},{id:59,imageid:46,cred:50,type:1,hidden:0,strings:{caption:"Skill Collector - Dante",description:"Acquire all of Dante's skills.",unachieved:"This is a secret achievement. You must unlock this achievement to find out more about it."}}]],achievementPlayer:[[{id:111,player:[1,0,0,0]},{id:2,player:[1,0,0,0]},{id:3,player:[1,0,0,0]},{id:4,player:[0,0,0,0]},{id:5,player:[1,1,0,0]},{id:6,player:[0,0,1,0]},{id:7,player:[0,1,1,0]},{id:8,player:[0,0,0,0]},{id:9,player:[0,0,0,0]},{id:10,player:[0,0,0,0]},{id:11,player:[0,0,0,0]},{id:12,player:[0,0,0,0]},{id:13,player:[1,1,0,0]},{id:14,player:[0,0,0,0]},{id:15,player:[0,0,0,0]},{id:16,player:[1,0,0,0]},{id:17,player:[0,0,0,0]},{id:18,player:[0,0,0,0]},{id:19,player:[0,0,0,0]},{id:20,player:[0,0,0,0]},{id:21,player:[0,0,0,0]},{id:22,player:[0,0,0,0]},{id:23,player:[0,0,0,0]},{id:24,player:[0,0,0,0]},{id:25,player:[0,0,0,0]},{id:26,player:[0,0,0,0]},{id:27,player:[0,0,0,0]},{id:28,player:[0,0,0,0]},{id:29,player:[0,0,0,0]},{id:30,player:[0,0,0,0]},{id:31,player:[0,0,0,0]},{id:32,player:[0,0,0,0]},{id:33,player:[0,0,0,0]},{id:34,player:[0,0,0,0]},{id:35,player:[0,0,0,0]},{id:36,player:[0,0,0,0]},{id:37,player:[0,0,0,0]},{id:38,player:[0,0,0,0]},{id:39,player:[0,0,0,0]},{id:40,player:[0,0,0,0]},{id:41,player:[0,0,0,0]},{id:42,player:[0,0,0,0]},{id:43,player:[0,0,0,0]},{id:44,player:[0,0,0,0]},{id:45,player:[0,0,0,0]},{id:46,player:[0,0,0,0]},{id:47,player:[0,0,0,0]},{id:48,player:[0,0,0,0]},{id:49,player:[0,0,0,0]},{id:50,player:[0,0,0,0]}]],dashlaunch:[{version:{number:{major:3,minor:18,build:588},kernel:17511},options:[{id:0,category:"Net",name:"pingpatch",value:"true"},{id:1,category:"Behavior",name:"contpatch",value:"true"},{id:2,category:"Behavior",name:"xblapatch",value:"false"},{id:3,category:"Behavior",name:"licpatch",value:"false"},{id:4,category:"Behavior",name:"nxemini",value:"true"},{id:5,category:"Behavior",name:"dvdexitdash",value:"false"},{id:6,category:"Behavior",name:"xblaexitdash",value:"false"},{id:7,category:"Behavior",name:"nosysexit",value:"false"},{id:8,category:"Behavior",name:"nohud",value:"false"},{id:9,category:"Behavior",name:"nohealth",value:"true"},{id:10,category:"Behavior",name:"nooobe",value:"true"},{id:11,category:"Behavior",name:"autoswap",value:"false"},{id:12,category:"Behavior",name:"regionspoof",value:"true"},{id:13,category:"Behavior",name:"region",value:"0x7FFF"},{id:14,category:"Net",name:"signnotice",value:"false"},{id:15,category:"Net",name:"liveblock",value:"true"},{id:16,category:"Net",name:"livestrong",value:"false"},{id:17,category:"Behavior",name:"autoshut",value:"false"},{id:18,category:"Behavior",name:"autooff",value:"false"},{id:19,category:"Behavior",name:"shuttemps",value:"false"},{id:20,category:"Net",name:"xhttp",value:"true"},{id:21,category:"Net",name:"nonetstore",value:"true"},{id:22,category:"Behavior",name:"devprof",value:"false"},{id:23,category:"Net",name:"devlink",value:"false"},{id:24,category:"Timer",name:"hddtimer",value:"210"},{id:25,category:"Timer",name:"hddalive",value:"false"},{id:26,category:"Timer",name:"temptime",value:"10"},{id:27,category:"Timer",name:"tempport",value:"7030"},{id:28,category:"Timer",name:"tempbcast",value:"false"},{id:29,category:"Behavior",name:"fatalreboot",value:"true"},{id:30,category:"Behavior",name:"fatalfreeze",value:"false"},{id:31,category:"Behavior",name:"safereboot",value:"true"},{id:32,category:"Behavior",name:"exchandler",value:"true"},{id:33,category:"Behavior",name:"debugout",value:"false"},{id:34,category:"Net",name:"sockpatch",value:"false"},{id:35,category:"Behavior",name:"passlaunch",value:"false"},{id:36,category:"Net",name:"fakelive",value:"false"},{id:37,category:"Net",name:"autofake",value:"true"},{id:38,category:"Net",name:"autocont",value:"true"},{id:39,category:"Net",name:"autofake0",value:"0x584E07D2"},{id:40,category:"Net",name:"autofake1",value:"0x00000000"},{id:41,category:"Net",name:"autofake2",value:"0x00000000"},{id:42,category:"Net",name:"autofake3",value:"0x00000000"},{id:43,category:"Net",name:"autofake4",value:"0x00000000"},{id:44,category:"Net",name:"autofake5",value:"0x00000000"},{id:45,category:"Net",name:"autofake6",value:"0x00000000"},{id:46,category:"Net",name:"autofake7",value:"0x00000000"},{id:47,category:"Net",name:"autofake8",value:"0x00000000"},{id:48,category:"Net",name:"autofake9",value:"0x00000000"},{id:49,category:"Behavior",name:"noupdater",value:"true"},{id:50,category:"Behavior",name:"remotenxe",value:"false"},{id:51,category:"Paths",name:"dumpfile",value:"\\crashlog.txt"},{id:52,category:"Plugins",name:"plugin1",value:""},{id:53,category:"Plugins",name:"plugin2",value:""},{id:54,category:"Plugins",name:"plugin3",value:""},{id:55,category:"Plugins",name:"plugin4",value:""},{id:56,category:"Plugins",name:"plugin5",value:""},{id:57,category:"Paths",name:"Default",value:"\\_applications\\Aurora 0.7b\\Aurora.xex"},{id:58,category:"Paths",name:"BUT_A",value:""},{id:59,category:"Paths",name:"BUT_B",value:"\\_applications\\F3Release1.0\\default.xex"},{id:60,category:"Paths",name:"BUT_X",value:"\\_applications\\PluginTester\\PluginTesterUI.xex"},{id:61,category:"Paths",name:"BUT_Y",value:"\\_applications\\Aurora\\Aurora.xex"},{id:62,category:"Paths",name:"Start",value:"\\_applications\\Dashlaunch3\\default.xex"},{id:63,category:"Paths",name:"Back",value:""},{id:64,category:"Paths",name:"LBump",value:"\\_applications\\DemoNNandSwitcher\\NandSwitcher.xex"},{id:65,category:"Paths",name:"LThumb",value:""},{id:66,category:"Paths",name:"RThumb",value:""},{id:67,category:"Paths",name:"configapp",value:""},{id:68,category:"Paths",name:"Guide",value:""},{id:69,category:"Paths",name:"Power",value:"\\_applications\\DemoNNandSwitcher\\NandSwitcher.xex"},{id:70,category:"Paths",name:"Fakeanim",value:"\\_applications\\XexResource\\XEXResource.xex"},{id:71,category:"Extern",name:"ftpserv",value:"true"},{id:72,category:"Extern",name:"ftpport",value:"21"},{id:73,category:"Extern",name:"updserv",value:"false"},{id:74,category:"Extern",name:"calaunch",value:"false"},{id:75,category:"Extern",name:"fahrenheit",value:"false"}]}],filebrowser:[],imageAchievement:[],imageProfile:[],imageScreencapture:[],memory:[{total:536870912,used:446132224,free:90738688},{total:536870912,used:226132224,free:210738688},{total:536870912,used:536870912,free:0},{total:536870912,used:90738688,free:426132224}],multidisc:[{titleid:"0x12345678",disc:{current:2,total:3},entries:[{container:0,path:""},{container:0,path:"\\Device\\Harddisk0\\Partition1\\games\\somegame\\disc2\\default.xex"},{container:1,path:"\\Device\\harddisk0\\Partition1\\games\\somegame\\disc3\\default.xex"},{container:0,path:""},{container:0,path:""}]}],plugin:[{version:{number:{major:2,minor:3,build:1299,type:1},api:2},path:{root:"\\Device\\Harddisk0\\Partition1\\DEVKIT\\NovaPlugin\\Plugins",user:"\\Device\\Harddisk0\\Partition1\\DEVKIT\\NovaPlugin\\Plugins\\UserData",web:"\\Device\\Harddisk0\\Partition1\\DEVKIT\\NovaPlugin\\Plugins\\WebRoot",launcher:"\\Device\\Harddisk0\\Partition1\\DEVKIT\\NovaPlugin\\PluginTesterUI.xex"},features:{multidisc:1,trainers:0,systemlink:1,gamepad:0,achievements:1,threads:1,httpdaemon:1,debugger:0,network:1}}],profile:[[{index:0,gamertag:"Player1",gamerscore:100,signedin:1,xuid:"E0002433485D6E42"},{index:1,gamertag:"",gamerscore:0,signedin:0,xuid:"0000000000000000"},{index:2,gamertag:"",gamerscore:0,signedin:0,xuid:"0000000000000000"},{index:3,gamertag:"",gamerscore:0,signedin:0,xuid:"0000000000000000"}],[{index:0,gamertag:"",gamerscore:0,signedin:0,xuid:"0000000000000000"},{index:1,gamertag:"maxlen gamertag",gamerscore:29348,signedin:1,xuid:"E0002433485D6E42"},{index:2,gamertag:"oOo Mattie oOo",gamerscore:4670,signedin:1,xuid:"E000000000000001"},{index:3,gamertag:"",gamerscore:0,signedin:0,xuid:"0000000000000000"}]],screencaptureMeta:[{filename:"0000000020121118130450844",filesize:3686522,titleid:"0x00000000",timestamp:"20180215130030844",info:{width:1280,height:720,format:"A8R8G8B8"}},{filename:"1920x1080",filesize:6686522,titleid:"0x00000000",timestamp:"20180215130130844",info:{width:1920,height:1080,format:"A8R8G8B8"}}],screencaptureMetaList:[[{filename:"0000000020180329005850844",filesize:3686522,titleid:"0x00000000",timestamp:"20180329005850844",info:{width:1280,height:720,format:"A8R8G8B8"}},{filename:"0000000020121118130450844",filesize:3686522,titleid:"0x00000000",timestamp:"20121118130450844",info:{width:1280,height:720,format:"A8R8G8B8"}},{filename:"1920x1080",filesize:6686522,titleid:"0x00000000",timestamp:"20121118144519223",info:{width:1920,height:1080,format:"A8R8G8B8"}},{filename:"0000000020121121190141195",filesize:3686522,titleid:"0x00000000",timestamp:"20121121190141195",info:{width:1280,height:720,format:"A8R8G8B8"}},{filename:"0000000020130128221837114",filesize:3686522,titleid:"0x00000000",timestamp:"20130128221837114",info:{width:1280,height:720,format:"A8R8G8B8"}},{filename:"0000000020130128225335163",filesize:1228922,titleid:"0x00000000",timestamp:"20130128225335163",info:{width:640,height:480,format:"A8R8G8B8"}},{filename:"0000000020130128225339245",filesize:1228922,titleid:"0x00000000",timestamp:"20130128225339245",info:{width:640,height:480,format:"A8R8G8B8"}},{filename:"0000000020130128225339244",filesize:1228922,titleid:"0x00000000",timestamp:"20130128225339244",info:{width:640,height:480,format:"A8R8G8B8"}}]],screencaptureMetaListCount:[],smc:[{smcversion:"2.30",avpack:1,traystate:0,dvdmediatype:7,tiltstate:1,temperature:{celsius:!0,target:{cpu:80,gpu:71,memory:73},max:{cpu:95,gpu:90,memory:92}}},{smcversion:"2.30",avpack:1,traystate:4,dvdmediatype:9,tiltstate:1,temperature:{celsius:!1,target:{cpu:180,gpu:167,memory:175},max:{cpu:200,gpu:200,memory:201}}}],system:[{serial:"461246584405",consoleid:"027408092822",cpukey:"",dvdkey:"",version:{major:2,minor:0,build:15574,qfe:32768},console:{motherboard:"Jasper",type:"Devkit"}}],systemlink:[{enabled:1,username:"MaesterRowen",apikey:"9CF20AB129B219A6384E3C0CEE6DE685",xboxip:"192.168.1.20",xboxmac:"00:22:48:5D:6E:42",broadcastport:4001,dataport:4e3,gatewayip:"192.168.1.1",gatewaymac:"74:44:01:7C:CA:C3"}],systemlinkBandwidth:[{rate:{downstream:0,upstream:0},bytes:{downstream:0,upstream:0}},{rate:{downstream:50.576843,upstream:21.735573},bytes:{downstream:112,upstream:48}},{rate:{downstream:39.659365,upstream:.063528},bytes:{downstream:332,upstream:63}},{rate:{downstream:2398.457853,upstream:1264.474737},bytes:{downstream:52846,upstream:4367}},{rate:{downstream:4759379.047276,upstream:34678.68689},bytes:{downstream:759468547368,upstream:865936309}}],temperature:[{celsius:!0,cpu:62.15,gpu:66.1,memory:72.69,case:34.88},{celsius:!0,cpu:62.95,gpu:65.15,memory:70.69,case:35.23},{celsius:!1,cpu:141.62,gpu:153.05,memory:161.53,case:92.17}],thread:[[{id:"0xF9000000",type:1,flags:"0x01000100",priority:13,address:"0x8175A968",state:1},{id:"0xF9000004",type:1,flags:"0x00000000",priority:13,address:"0x82580F68",state:1},{id:"0xF9000008",type:1,flags:"0x00000000",priority:13,address:"0x82580F68",state:1},{id:"0xF900000C",type:1,flags:"0x00000000",priority:17,address:"0x8260BDA0",state:1},{id:"0xF9000010",type:1,flags:"0x00000000",priority:17,address:"0x8260BDA0",state:1},{id:"0xF9000014",type:1,flags:"0x00000000",priority:13,address:"0x82580F68",state:1},{id:"0xF9000018",type:1,flags:"0x00000000",priority:14,address:"0x82580F68",state:1},{id:"0xF9000020",type:1,flags:"0x00000000",priority:14,address:"0x82580F68",state:1},{id:"0xF9000024",type:1,flags:"0x00000000",priority:13,address:"0x82BE6FF0",state:1},{id:"0xF900001C",type:1,flags:"0x00000000",priority:13,address:"0x82BE6FF0",state:1},{id:"0xF9000028",type:1,flags:"0x00000001",priority:17,address:"0x826D48E8",state:1},{id:"0xF900002C",type:1,flags:"0x00000001",priority:17,address:"0x826D48E8",state:1},{id:"0xF9000030",type:1,flags:"0x00000001",priority:14,address:"0x8275D930",state:1},{id:"0xF9000034",type:1,flags:"0x00000001",priority:17,address:"0x8275D930",state:1},{id:"0xF9000038",type:1,flags:"0x00000001",priority:15,address:"0x8275D930",state:1}]],threadState:[{state:0}],title:[{path:"/Device/Harddisk0/Partition1/Legit Games/Alan Wake 1/alan_wake_default.xex",titleid:"0x4D530805",mediaid:"0x54E34DF4",disc:{current:1,count:1},tuver:0,version:{base:"0x00000001",current:"0x00000001"},resolution:{width:640,height:480}},{path:"/Device/Harddisk0/Partition1/Legit Games/Alan Wake 1/alan_wake_default.xex",titleid:"0x4D530805",mediaid:"0x54E34DF4",disc:{current:1,count:1},tuver:0,version:{base:"0x00000001",current:"0x00000001"},resolution:{width:1280,height:720}}],titleFile:[],titleLiveCache:[],titleLiveCache__:[{parsed:!0,mediatype:"1",gametitlemediaid:"",reducedtitle:"F3",reduceddescription:"Freestyle 3 is the third installment of a dashboard replacement written by teamFSD. \n        It allows users to list their games and homebrew which can be stored on various media. \n        F3 is skinnable and highly adjustable to every users liking.",availabilitydate:"2012-09-22T00: 00: 00",releasedate:"2012-09-22T00: 00: 00",ratingid:"40",developer:"teamFSD",publisher:"n/a",newestofferstartdate:"2012-09-22T00: 00: 00Z",totaloffercount:"2",totalsubscriptioncount:"1",titleid:"5454087c",effectivetitleid:"",gamereducedtitle:"F3",fulltitle:"Freestyle 3",description:"Take your modded Xbox 360 to the next level with this third installment of \n        the most popular dashboard replacement created by teamFSD.\n\n        Automatically scan your harddrives for playable games and homebrew. \n        Choose your own wallpapers, customize the menus to your liking,\n\n        or even create your own skins!\n\n\n        Play together with friends accross the world on LiNK using F3 in combination with Freestyle Plugin \n        and <a target='_blank' href='http://link.JQE360.com'>link.JQE360.com</a>.\n\n        Get real time game info via WebUI, \n        or add notes to the screencaptures you took while playing your favorite game!\n\n\n        <div class='f3 features left'>\n          <div class='f3 fieldname'>Some Freestyle 3 features: </div>\n          <ul class='f3 features list'>\n            <li>Coverflow title menu</li>\n            <li>Stylable menus</li>\n            <li>Custom wallpapers</li>\n            <li>Automatic title scanning</li>\n            <li>FTP Server</li>\n            <li>SMB Server</li>\n            <li>Webserver</li>\n            <li>Weather info</li>\n            <li>File manager</li>\n            <li>Fully reskinnable</li>\n          </ul>\n        </div>\n        <div class='f3 left'>\n          <div class='f3 fieldname'>In combination with Freestyle Plugin: </div>\n          <ul class='f3 features list'>\n            <li>LiNK with HUD</li>\n            <li>In game screen captures</li>\n            <li>Web interface (including system info and notes on screencaptures)</li>\n          </ul>\n        </div>",ratingaggregate:"0",numberofratings:"0",categories:[{categoryid:"0000",system:"0000",name:"Homebrew"},{categoryid:"0001",system:"0000",name:"Dashboard Replacement"}],ratingdescriptors:[],video:{videodefinition:"",videoencoding:"",audioencoding:"",isacquirable:"",aspectratio:"",resolution:"",url:""},images:{icon:"data:image/png;base64,[encoded data, 5524 characters]",banner:"getGameFile?path=Media/Assets/banner.png",boxart:{small:"title/file?path=Media/Assets/boxartsm.jpg",large:"http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8025454087c/1033/boxartlg.jpg"},background:"title/file?path=Media/Assets/background.jpg",screenshots:["http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8025454087c/1033/background.jpg","getGameFile?path=Media/Assets/screenlg1.jpg","getGameFile?path=Media/Assets/screenlg2.jpg","getGameFile?path=Media/Assets/screenlg3.jpg","getGameFile?path=Media/Assets/screenlg4.jpg","getGameFile?path=Media/Assets/screenlg5.jpg","getGameFile?path=Media/Assets/screenlg6.jpg","getGameFile?path=Media/Assets/screenlg7.jpg","getGameFile?path=Media/Assets/screenlg8.jpg"]},gamecapabilities:{offlineplayersmin:"",offlineplayersmax:"",offlinecoopplayersmin:"",offlinecoopplayersmax:"",offlinesystemlinkmin:"",offlinesystemlinkmax:"",offlinemaxhdtvmodeid:"",offlinedolbydigital:"",onlinemultiplayermin:"",onlinemultiplayermax:"",onlinecoopplayersmin:"",onlinecoopplayersmax:"",onlinecontentdownload:"",onlineleaderboards:"",onlinevoice:""}}],titleLiveCache_:[{parsed:!0,mediatype:"1",gametitlemediaid:"",reducedtitle:"F3",reduceddescription:"Freestyle 3 is the third installment of a dashboard replacement written by teamFSD. \n        It allows users to list their games and homebrew which can be stored on various media. \n        F3 is skinnable and highly adjustable to every users liking.",availabilitydate:"2012-09-22T00: 00: 00",releasedate:"2012-09-22T00: 00: 00",ratingid:"40",developer:"teamFSD",publisher:"n/a",newestofferstartdate:"2012-09-22T00: 00: 00Z",totaloffercount:"2",totalsubscriptioncount:"1",titleid:"5454087c",effectivetitleid:"",gamereducedtitle:"F3",fulltitle:"Freestyle 3",description:"Take your modded Xbox 360 to the next level with this third installment of \n        the most popular dashboard replacement created by teamFSD.\n\n        Automatically scan your harddrives for playable games and homebrew. \n        Choose your own wallpapers, customize the menus to your liking,\n\n        or even create your own skins!\n\n\n        Play together with friends accross the world on LiNK using F3 in combination with Freestyle Plugin \n        and <a target='_blank' href='http://link.JQE360.com'>link.JQE360.com</a>.\n\n        Get real time game info via WebUI, \n        or add notes to the screencaptures you took while playing your favorite game!\n\n\n        <div class='f3 features left'>\n          <div class='f3 fieldname'>Some Freestyle 3 features: </div>\n          <ul class='f3 features list'>\n            <li>Coverflow title menu</li>\n            <li>Stylable menus</li>\n            <li>Custom wallpapers</li>\n            <li>Automatic title scanning</li>\n            <li>FTP Server</li>\n            <li>SMB Server</li>\n            <li>Webserver</li>\n            <li>Weather info</li>\n            <li>File manager</li>\n            <li>Fully reskinnable</li>\n          </ul>\n        </div>\n        <div class='f3 left'>\n          <div class='f3 fieldname'>In combination with Freestyle Plugin: </div>\n          <ul class='f3 features list'>\n            <li>LiNK with HUD</li>\n            <li>In game screen captures</li>\n            <li>Web interface (including system info and notes on screencaptures)</li>\n          </ul>\n        </div>",ratingaggregate:"0",numberofratings:"0",categories:[{categoryid:"0000",system:"0000",name:"Homebrew"},{categoryid:"0001",system:"0000",name:"Dashboard Replacement"}],ratingdescriptors:[],video:{videodefinition:"",videoencoding:"",audioencoding:"",isacquirable:"",aspectratio:"",resolution:"",url:""},images:{icon:"",banner:"",boxart:{small:"",large:""},background:"",screenshots:[""]},gamecapabilities:{offlineplayersmin:"",offlineplayersmax:"",offlinecoopplayersmin:"",offlinecoopplayersmax:"",offlinesystemlinkmin:"",offlinesystemlinkmax:"",offlinemaxhdtvmodeid:"",offlinedolbydigital:"",onlinemultiplayermin:"",onlinemultiplayermax:"",onlinecoopplayersmin:"",onlinecoopplayersmax:"",onlinecontentdownload:"",onlineleaderboards:"",onlinevoice:""}}],titleUserdata:[{settings:{achievements:{showsecret:!1}},version:"1",notes:{"getScreenCaptureImage?uuid=0000000020121118130450844":[{ID:1,LEFT:0,TOP:0,WIDTH:5,HEIGHT:10,DATE:{Y:2013,M:2,D:18,H:11,I:38},NOTE:"this rain looks awesome",AUTHOR:"JPizzle416",LINK:"http://eat.a.bag.of.dicks.com"},{ID:2,LEFT:95,TOP:90,WIDTH:5,HEIGHT:10,DATE:{Y:2013,M:2,D:18,H:11,I:38},NOTE:"As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???As we test this, you should know this is a test note that is very large. I wonder if it falls off screen???",AUTHOR:"Me",LINK:"https://steamcommunity.com/app/446800/discussions/0/154644928861110888/"},{ID:3,LEFT:47.5,TOP:3,WIDTH:52.5,HEIGHT:10,DATE:{Y:2013,M:2,D:18,H:11,I:38},NOTE:"blablabla",AUTHOR:"mat",LINK:"http://"}]}}],updateNotification:[{profiles:0,achievements:0,screencapture:0,title:0}]},POST:{authenticate:[{token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDkzNjkyMDAsIml0YSI6MTQ4MTA4NDI4NSwiaXNzIjoicGhvZW5peCIsInVzZXIiOiJ4Ym94aHR0cCJ9.TE7nfNB_gEeYuMF0BtyGx5i_IiDeHNeDEDAPOEv6NOQ"},{token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODEwODQyODYsIml0YSI6MTQ4MTA4NDI4NSwiaXNzIjoicGhvZW5peCIsInVzZXIiOiJ4Ym94aHR0cCJ9.07T8pHBXCc9MsQBdSDz5F0LTNr8HoCiPw07sSpK5hT4"}]}}},223:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LiveXmls=['<?xml version="1.0" encoding="utf-8"?>\n    <feed xmlns:live="http://www.live.com/marketplace" xmlns="http://www.w3.org/2005/Atom">\n        <live:totalItems>1</live:totalItems>\n        <live:numItems>1</live:numItems>\n        <title>FindGames Results</title>\n        <updated>2012-10-09T17:01:17.857Z</updated>\n        <entry live:itemNum="1" live:detailView="5">\n            <id>urn:uuid:66ACD000-77FE-1000-9115-D802415608CB</id>\n            <updated>2012-10-09T17:01:17.857Z</updated>\n            <title>Modern Warfare® 3</title>\n            <content type="text">game content</content>\n            <live:media>\n                <live:mediaType>1</live:mediaType>\n                <live:gameTitleMediaId>urn:uuid:66ACD000-77FE-1000-9115-D802415608CB</live:gameTitleMediaId>\n                <live:reducedTitle>Modern Warfare® 3</live:reducedTitle>\n                <live:reducedDescription>\n                    Modern Warfare® is back. The best-selling first person action series of \n                    all-time returns with the epic sequel to "Game of the Year" winner "Call of Duty: Modern Warfare 2",\n                    thrusting players on a cinematic thrill-ride. Online, the definitive Multiplayer experience returns\n                    bigger than ever, loaded with new maps, modes and features. In addition to all-new missions,\n                    Spec-Ops now introduces Survival Mode, an action-packed combat progression unlike any other.\n                </live:reducedDescription>\n                <live:availabilityDate>2011-05-24T00:00:00</live:availabilityDate>\n                <live:releaseDate>2011-11-08T00:00:00</live:releaseDate>\n                <live:ratingId>40</live:ratingId>\n                <live:ratingDescriptors>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>3</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>7</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>11</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>23</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                </live:ratingDescriptors>\n                <live:developer>Infinity Ward and Sledgehammer Games</live:developer>\n                <live:publisher>Activision</live:publisher>\n                <live:newestOfferStartDate>2012-09-06T09:00:00Z</live:newestOfferStartDate>\n                <live:totalOfferCount>69</live:totalOfferCount>\n                <live:totalSubscriptionCount>1</live:totalSubscriptionCount>\n                <live:titleId>1096157387</live:titleId>\n                <live:effectiveTitleId>1096157387</live:effectiveTitleId>\n                <live:gameReducedTitle>Modern Warfare® 3</live:gameReducedTitle>\n                <live:fullTitle>Call of Duty®: Modern Warfare® 3</live:fullTitle>\n                <live:description>\n                    (Online Interactions Not Rated by the ESRB)\n\n                    The Games on Demand version supports  English.\n\n                    Modern Warfare® is back. The best-selling first person action series of all-time returns with the epic sequel to\n                    multiple "Game of the Year" award winner, "Call of Duty®: Modern Warfare 2." In the world’s darkest hour,\n                    are you willing to do what is necessary?\n                    Prepare yourself for a cinematic thrill-ride as only Call of Duty can deliver.\n                    Online, the definitive Multiplayer experience returns bigger and better than ever, loaded with new maps,\n                    modes and features. Co-Op play has evolved with all-new Spec-Ops missions and leaderboards,\n                    as well as Survival Mode, an action-packed combat progression unlike any other.\n                </live:description>\n                <live:gameCapabilities>\n                    <live:offlinePlayersMin>2</live:offlinePlayersMin>\n                    <live:offlinePlayersMax>4</live:offlinePlayersMax>\n                    <live:offlineCoopPlayersMin>2</live:offlineCoopPlayersMin>\n                    <live:offlineCoopPlayersMax>4</live:offlineCoopPlayersMax>\n                    <live:offlineSystemLinkMin>1</live:offlineSystemLinkMin>\n                    <live:offlineSystemLinkMax>4</live:offlineSystemLinkMax>\n                    <live:offlineMaxHDTVModeId>3</live:offlineMaxHDTVModeId>\n                    <live:offlineDolbyDigital>1</live:offlineDolbyDigital>\n                    <live:onlineMultiplayerMin>2</live:onlineMultiplayerMin>\n                    <live:onlineMultiplayerMax>18</live:onlineMultiplayerMax>\n                    <live:onlineCoopPlayersMin>2</live:onlineCoopPlayersMin>\n                    <live:onlineCoopPlayersMax>18</live:onlineCoopPlayersMax>\n                    <live:onlineContentDownload>1</live:onlineContentDownload>\n                    <live:onlineLeaderboards>1</live:onlineLeaderboards>\n                    <live:onlineVoice>1</live:onlineVoice>\n                </live:gameCapabilities>\n                <live:offerCounts>\n                    <live:offerCount>\n                        <live:targetMediaType>1</live:targetMediaType>\n                        <live:totalOfferCount>1</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>1</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>18</live:targetMediaType>\n                        <live:totalOfferCount>6</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>6</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>19</live:targetMediaType>\n                        <live:totalOfferCount>1</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>1</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>22</live:targetMediaType>\n                        <live:totalOfferCount>5</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>5</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>34</live:targetMediaType>\n                        <live:totalOfferCount>13</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>13</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>47</live:targetMediaType>\n                        <live:totalOfferCount>43</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>43</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                </live:offerCounts>\n                <live:ratingAggregate>4.25</live:ratingAggregate>\n                <live:numberOfRatings>628608</live:numberOfRatings>\n            </live:media>\n            <live:categories>\n                <live:category>\n                    <live:categoryId>3000</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Game Genres</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3011</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Shooter</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3027</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Xbox LIVE Games</live:name>\n                </live:category>\n            </live:categories>\n            <live:images>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:EDDC8343-C149-4C18-90C0-2A412D2C3FEB</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:A59DD801-0D2E-4E66-89BC-0229B5D1D5E1</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>23</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>14</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/tile.png\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:3A4DC2AA-A9FB-46FC-A3C0-429E8F03E8DC</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:05451A2C-FF23-4B78-833C-974F6953A884\n                    </live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>30</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/boxartsm.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:EB276E92-C5AD-47E8-A4E5-2539F7437B6E</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:31EFA305-812D-4C4A-BDF9-9B4A0D8A672E\n                    </live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>27</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>15</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/banner.png\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:05B778D5-30AD-4C76-8B80-E91ACFBA3C62</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:9F223B88-82BB-427C-B078-B9C6E3FC9845\n                    </live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>25</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>22</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/background.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:47AA5334-A4D7-4321-B1E6-D76875D8BE3F</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:0B6518FE-FA2A-4881-9061-E6B2B65AC350\n                    </live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>23</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/boxartlg.jp\n                    </live:fileUrl>\n                </live:image>\n            </live:images>\n            <live:slideShows>\n                <live:slideShow>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:599C6749-22F0-4348-9104-AC0221B3F8A7</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:ACDD16DC-E9DB-4C72-B73C-BD574765A52A\n                        </live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/screenlg1.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:C32AF6AC-06AE-42D4-A818-363F7956161B</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:765BBC4C-76A6-4EEB-B0B0-6EC4D02FFAD6\n                        </live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/screenlg2.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:2826E5EA-EE86-41FB-8B03-22C8FD96E7E4</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:264A6960-E654-43E8-A38F-C62CA6339A96\n                        </live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802415608cb/1033/screenlg3.jpg\n                        </live:fileUrl>\n                    </live:image>\n                </live:slideShow>\n            </live:slideShows>\n        </entry>\n    </feed>','<?xml version="1.0" encoding="UTF-8"?>\n    <feed xmlns:live="http://www.live.com/marketplace" xmlns="http://www.w3.org/2005/Atom">\n        <live:totalItems>1</live:totalItems>\n        <live:numItems>1</live:numItems>\n        <title>FindGames Results</title>\n        <updated>2012-07-30T09:00:39.42Z</updated>\n        <entry live:itemNum="1" live:detailView="5">\n            <id>urn:uuid:66ACD000-77FE-1000-9115-D8024D530805</id>\n            <updated>2012-07-30T09:00:39.42Z</updated>\n            <title>Alan Wake</title>\n            <content type="text">game content</content>\n            <live:media>\n                <live:mediaType>1</live:mediaType>\n                <live:gameTitleMediaId>urn:uuid:66ACD000-77FE-1000-9115-D8024D530805</live:gameTitleMediaId>\n                <live:reducedTitle>Alan Wake</live:reducedTitle>\n                <live:reducedDescription>\n                    IN DARKNESS,FIGHT WITH LIGHT.\n\n                    From Remedy, the masters of cinematic action,\n                    comes a 3rd person action game filled with overwhelming odds and desperate near escapes.\n\n                    When the wife of the best-selling writer Alan Wake disappears on their vacation, \n                    his search turns up pages from a thriller he doesn’t even remember writing.\n                    A dark presence stalks the small town of Bright Falls, \n                    pushing Wake to the brink of sanity in his fight to unravel the mystery and save his love. \n\n                    With the body of an a…\n                </live:reducedDescription>\n                <live:availabilityDate>2010-05-18T00:00:00</live:availabilityDate>\n                <live:releaseDate>2010-05-18T00:00:00</live:releaseDate>\n                <live:ratingId>30</live:ratingId>\n                <live:ratingDescriptors>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>2</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>12</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>29</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>30</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                    <live:ratingDescriptor>\n                        <live:ratingDescriptorId>31</live:ratingDescriptorId>\n                        <live:ratingDescriptorLevel>1.0000</live:ratingDescriptorLevel>\n                    </live:ratingDescriptor>\n                </live:ratingDescriptors>\n                <live:developer>Remedy Games</live:developer>\n                <live:publisher>Microsoft</live:publisher>\n                <live:newestOfferStartDate>2010-11-23T09:00:00Z</live:newestOfferStartDate>\n                <live:totalOfferCount>58</live:totalOfferCount>\n                <live:titleId>1297287173</live:titleId>\n                <live:effectiveTitleId>1297287173</live:effectiveTitleId>\n                <live:gameReducedTitle>Alan Wake</live:gameReducedTitle>\n                <live:fullTitle>Alan Wake</live:fullTitle>\n                <live:description>\n                    Download the manual for this game by locating the game on http://marketplace.xbox.com and selecting \n                    “See Game Manual". \n\n                    IN DARKNESS,FIGHT WITH LIGHT.\n\n                    From Remedy, the masters of cinematic action, \n                    comes a 3rd person action game filled with overwhelming odds and desperate near escapes.\n\n                    When the wife of the best-selling writer Alan Wake disappears on their vacation, \n                    his search turns up pages from a thriller he doesn’t even remember writing. \n                    A dark presence stalks the small town of Bright Falls, \n                    pushing Wake to the brink of sanity in his fight to unravel the mystery and save his love. \n\n                    With the body of an action game and the mind of a psychological thriller, Alan Wake is a pulse-pounding thrill ride.\n                </live:description>\n                <live:gameCapabilities/>\n                <live:offerCounts>\n                    <live:offerCount>\n                        <live:targetMediaType>1</live:targetMediaType>\n                        <live:totalOfferCount>1</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>1</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>18</live:targetMediaType>\n                        <live:totalOfferCount>2</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>2</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>20</live:targetMediaType>\n                        <live:totalOfferCount>3</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>3</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>34</live:targetMediaType>\n                        <live:totalOfferCount>14</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>14</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                    <live:offerCount>\n                        <live:targetMediaType>47</live:targetMediaType>\n                        <live:totalOfferCount>38</live:totalOfferCount>\n                        <live:userCounts>\n                            <live:userCount>\n                                <live:userType>2</live:userType>\n                                <live:offerCount>38</live:offerCount>\n                            </live:userCount>\n                        </live:userCounts>\n                    </live:offerCount>\n                </live:offerCounts>\n                <live:ratingAggregate>4.50</live:ratingAggregate>\n                <live:numberOfRatings>50535</live:numberOfRatings>\n            </live:media>\n            <live:categories>\n                <live:category>\n                    <live:categoryId>3000</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Game Genres</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3002</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Action &amp; Adventure</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3011</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Shooter</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3027</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Xbox LIVE Games</live:name>\n                </live:category>\n            </live:categories>\n            <live:images>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:91CA67FC-4F53-4A8B-811C-C8DB9811B7F2</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:01040448-B8A7-469E-AA30-3A5AE0EC4332</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>23</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/boxartlg.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:8519BF04-1561-4C31-A33B-5C70716CFC70</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:662888CF-E24B-4B41-9D4C-3B0744C4E997</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>23</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>14</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/tile.png\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:814FB9D1-86B9-4AC5-A221-9C366DA201CD</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:9FF6C763-C644-42C4-BB23-4F0C8FF5FDF4</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>25</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>22</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/background.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:483A6138-1790-4ADB-B2B8-A0FF33306404</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:2F3392DB-0168-4037-8ED0-6A240937FDE2</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>30</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/boxartsm.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:4D530805-0000-4000-8000-000000008000</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:DD721797-7A12-42CB-8D1B-819448F41969</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>15</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>14</live:size>\n                    <live:fileUrl>\n                        http://avatar.xboxlive.com/global/t.4d530805/icon/0/8000\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:38142A9C-A7E0-45B7-A79F-75AD7DE8ECDD</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:C22754CE-A94A-4DC6-A2E3-BFFBE7E9CD7A</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>27</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>15</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/banner.png\n                    </live:fileUrl>\n                </live:image>\n            </live:images>\n            <live:slideShows>\n                <live:slideShow>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:4D530805-0000-4003-8000-000000000000</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:4D530805-0000-4003-8000-000004090000</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://mktplassets.xbox.com/NR/rdonlyres/5DDA154F-EDCB-4D43-9A6F-1D3EF6C43672/0/simAlanWake00.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:E6CC52A6-6982-44BD-B882-2CFFB9DCC2E8</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:01005820-A552-4000-887E-96D48584E98F</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg1.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:7B7BB824-DA73-4A50-85BB-924F765B3E1F</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:6C517731-C4C2-486A-A9C0-DC09193CC303</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg2.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:869B6520-3B21-4227-8AA1-5AB90D75AFB4</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:D22108A1-EDC5-4B41-860D-FA4A365F7DC1</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg3.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:709C465D-558E-452C-84A0-1FDA183EF4C2</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:217757D1-CD64-4809-93ED-864537BBC18C</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg4.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:72C7D25B-DDBC-4523-9EEB-0050363653E5</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:3A009CA7-7BE8-4059-A876-22DC7F41FD69</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg5.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:97617AB3-0380-49D7-886C-B51216A7CEBE</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:096DE741-DE64-41B4-9F96-5C8BA8D0516A</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg6.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:BFBE8513-368D-4E39-8477-72DAE978947F</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:1F90860A-8BFC-42F3-A2FE-4EAAC9DB8EDB</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg7.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:569E4DF2-D68A-4EE2-A55B-4971DD3C0508</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:C66AC1D7-85CC-45E2-98CF-55A8DAC9F7B2</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg8.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:6AED20AD-0F0B-4759-A6CF-BE02BE426BB7</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:90C7DC23-63B9-4947-9B4A-32E3E0F5D798</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg9.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:1859AEBF-F1A0-4F42-9BED-D82B9C6E43EB</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:F16A6229-0986-4C0D-93D0-1806E0943CFD</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg10.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:740888A2-F71C-4340-9DAB-7200A870919F</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:7AFEDA13-FA1E-48B5-8841-FF7EA2EE5E94</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg11.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:7C8324B1-AD26-410F-AABC-914459206B62</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:89096334-04E0-4420-A5F6-D30DC499C2FC</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg12.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:134DE67F-A40A-4F1C-94C6-994289DCA706</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:CE891E99-965B-4043-8A0E-9B22660D268E</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg13.jpg\n                        </live:fileUrl>\n                    </live:image>\n                    <live:image>\n                        <live:imageMediaId>urn:uuid:13DE3A10-0FC5-402F-8CF5-7BC4D08DF231</live:imageMediaId>\n                        <live:imageMediaInstanceId>urn:uuid:C7803C57-DD61-4CDD-ACC1-718EE65C8A64</live:imageMediaInstanceId>\n                        <live:imageMediaType>14</live:imageMediaType>\n                        <live:format>4</live:format>\n                        <live:size>27</live:size>\n                        <live:fileUrl>\n                            http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d8024d530805/1033/screenlg14.jpg\n                        </live:fileUrl>\n                    </live:image>\n                </live:slideShow>\n            </live:slideShows>\n            <live:previewInstances>\n                <live:videoPreviewInstance>\n                    <live:videoInstanceId>urn:uuid:4D530805-0000-4004-8000-000004090001</live:videoInstanceId>\n                    <live:videoDefinition>SD</live:videoDefinition>\n                    <live:videoEncoding>WMV</live:videoEncoding>\n                    <live:audioEncoding>WMA</live:audioEncoding>\n                    <live:isAcquirable>0</live:isAcquirable>\n                    <live:aspectRatio>1.78:1</live:aspectRatio>\n                    <live:resolution/>\n                    <live:files>\n                        <live:file>\n                            <live:index>1</live:index>\n                            <live:fileUrl>\n                                http://mktplassets.xbox.com/NR/rdonlyres/27A17A38-B71D-4687-B667-EC0D7F7BA249/0/vidAlanWakecdnhi.asx\n                            </live:fileUrl>\n                            <live:fileSize>0</live:fileSize>\n                        </live:file>\n                    </live:files>\n                </live:videoPreviewInstance>\n            </live:previewInstances>\n        </entry>\n    </feed>','<?xml version="1.0" encoding="utf-8"?>\n    <feed xmlns:live="http://www.live.com/marketplace" xmlns="http://www.w3.org/2005/Atom">\n        <live:totalItems>1</live:totalItems>\n        <live:numItems>1</live:numItems>\n        <title>FindGames Results</title>\n        <updated>2014-03-17T18:37:35.987Z</updated>\n        <entry live:itemNum="1" live:detailView="5">\n            <id>urn:uuid:66ACD000-77FE-1000-9115-D802FFFE07FF</id>\n            <updated>2014-03-17T18:37:35.987Z</updated>\n            <title>Xbox 360 XDK Launcher</title>\n            <content type="text">game content</content>\n            <live:media>\n                <live:mediaType>1</live:mediaType>\n                <live:gameTitleMediaId>urn:uuid:66ACD000-77FE-1000-9115-D802FFFE07FF</live:gameTitleMediaId>\n                <live:reducedTitle>Xbox 360 XDK Launcher</live:reducedTitle>\n                <live:reducedDescription>Xbox 360 XDK Launcher</live:reducedDescription>\n                <live:availabilityDate>2008-01-01T00:00:00</live:availabilityDate>\n                <live:releaseDate>2008-01-01T00:00:00</live:releaseDate>\n                <live:ratingId>60</live:ratingId>\n                <live:developer>Xbox LIVE</live:developer>\n                <live:publisher>Xbox LIVE</live:publisher>\n                <live:titleId>-129025</live:titleId>\n                <live:fullTitle>Xbox 360 XDK Launcher</live:fullTitle>\n                <live:description>Xbox 360 XDK Launcher</live:description>\n                <live:gameCapabilities />\n                <live:ratingAggregate>0.00</live:ratingAggregate>\n                <live:numberOfRatings>0</live:numberOfRatings>\n            </live:media>\n            <live:categories>\n                <live:category>\n                    <live:categoryId>3000</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Game Genres</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3001</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Other</live:name>\n                </live:category>\n                <live:category>\n                    <live:categoryId>3027</live:categoryId>\n                    <live:system>3000</live:system>\n                    <live:name>Xbox LIVE Games</live:name>\n                </live:category>\n            </live:categories>\n            <live:images>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:ACDFDA45-484A-4A71-A7D3-292DD7F30BE8</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:F3F9001A-48D6-41FA-8254-99C894362DE6</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>23</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802fffe07ff/1033/boxartlg.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:F5CB8F71-AEFD-4393-AE75-3FD743D065A0</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:387A08EC-FB26-4075-88F1-BDC32DEFA90D</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>25</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>22</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802fffe07ff/1033/background.jpg\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:F33E5EFE-37A8-462D-9254-5EC840F60BDE</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:FEF0A0D5-983A-4BBF-AEC4-693CC3DADB59</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>27</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>15</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802fffe07ff/1033/banner.png\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:BCC9FC59-ACC5-44CA-A4F0-7FB4DF362B24</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:6AC84C6F-D595-4C3C-963F-68118995F136</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>23</live:relationshipType>\n                    <live:format>5</live:format>\n                    <live:size>14</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802fffe07ff/1033/tile.png\n                    </live:fileUrl>\n                </live:image>\n                <live:image>\n                    <live:imageMediaId>urn:uuid:8E89EFD4-4BB2-435D-AEDF-E120C12BE6CC</live:imageMediaId>\n                    <live:imageMediaInstanceId>urn:uuid:FA696B49-7135-4D94-B83C-9F4316D22179</live:imageMediaInstanceId>\n                    <live:imageMediaType>14</live:imageMediaType>\n                    <live:relationshipType>33</live:relationshipType>\n                    <live:format>4</live:format>\n                    <live:size>30</live:size>\n                    <live:fileUrl>\n                        http://download.xbox.com/content/images/66acd000-77fe-1000-9115-d802fffe07ff/1033/boxartsm.jpg\n                    </live:fileUrl>\n                </live:image>\n            </live:images>\n        </entry>\n    </feed>','<?xml version="1.0" encoding="utf-8"?>\n    <feed xmlns:live="http://www.live.com/marketplace" xmlns="http://www.w3.org/2005/Atom">\n        <live:totalItems>0</live:totalItems>\n        <live:numItems>0</live:numItems>\n        <title>FindGames Results</title>\n        <updated>2018-03-15T19:59:49.523863Z</updated>\n    </feed>']},224:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AchievementTypes={1:"Completion",2:"Leveling",3:"Unlock",4:"Event",5:"Tournament",6:"Checkpoint",7:"Other"};var i=function(){function Strings(){}return Strings}();t.Strings=i;var r=function(){function Achievement(){}return Achievement}();t.Achievement=r;var o=function(){function Aquired(){}return Aquired}();t.Aquired=o},225:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(52);t.collapsibleAnimation=i.trigger("collapsibleAnimation",[i.transition("x_details => x_",[i.query(":enter",[i.style({maxHeight:0})],{optional:!0}),i.query(":leave",[i.style({maxHeight:"3000px"}),i.animate("1.5s",i.style({maxHeight:0}))],{optional:!0}),i.query(":enter",[i.style({maxHeight:0}),i.animate("1.5s",i.style({maxHeight:"3000px"}))],{optional:!0})])])},226:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(22),o=n(90),a=n(25),s=n(225);n(252);var l=n(12),u=n(53),c=function(){function AppComponent(e,t,n,i){this.api=e,this.router=t,this.auth=n,this.liveDataService=i,this.url="http://phoenix.xboxunity.net",this.currentNotificationStatus={title:0,achievements:0,profiles:0,screencapture:0},this.api.title="bla"}return AppComponent.prototype.getRouterOutletState=function(e){return e.isActivated?"_"+e.activatedRoute.routeConfig.path:""},AppComponent.prototype.ngOnInit=function(){var e=this;this.liveDataService.await("get","updateNotification").distinctUntilChanged(function(e,t){return t?t.equals(e):t===e}).subscribe(function(t){t&&(t.title>e.currentNotificationStatus.title?e.liveDataService.refreshAll():((t.profiles>e.currentNotificationStatus.profiles||t.achievements>e.currentNotificationStatus.achievements)&&(t.profiles>e.currentNotificationStatus.profiles&&e.liveDataService.refresh("get","profileInfo"),t.achievements>e.currentNotificationStatus.achievements&&e.liveDataService.refresh("get","achievementInfo"),e.liveDataService.refresh("get","achievementAquired")),t.screencapture>e.currentNotificationStatus.screencapture&&e.liveDataService.refresh("get","screencaptures")),e.currentNotificationStatus=t)},function(e){return console.log(e)}),this.updateNotificationInterval=window.setInterval(function(){return e.liveDataService.refresh("get","updateNotification")},u.AppSettings.globalInterval)},AppComponent.prototype.ngOnDestroy=function(){window.clearInterval(this.updateNotificationInterval)},AppComponent=__decorate([i.Component({selector:"my-app",template:n(263),styles:[n(253)],animations:[s.collapsibleAnimation]}),__metadata("design:paramtypes",[o.ApiService,r.Router,a.AuthenticationService,l.LiveDataService])],AppComponent)}();t.AppComponent=c},227:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(22),r=n(82),o=n(86),a=n(85),s=n(83),l=n(92),u=n(87),c=n(88),d=n(89),p=[{path:"",component:o.HomeComponent,canActivate:[r.AuthenticationGuard]},{path:"users",component:l.UsersComponent,canActivate:[r.AuthenticationGuard]},{path:"notes",component:d.ScreencapturesComponent,canActivate:[r.AuthenticationGuard]},{path:"login",component:c.LoginComponent},{path:"details",component:a.DetailsComponent,canActivate:[r.AuthenticationGuard]},{path:"launcher",component:u.LauncherComponent,canActivate:[r.AuthenticationGuard]},{path:"console",component:s.ConsoleComponent,canActivate:[r.AuthenticationGuard]},{path:"**",redirectTo:"",pathMatch:"full"}];t.routing=i.RouterModule.forRoot(p,{useHash:!0})},228:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(23),a=n(54),s=function(){function AuthenticatedBackgroundDirective(e,t,n){this.el=e,this.http=t,this.dataCache=n,this.error=new i.EventEmitter}return AuthenticatedBackgroundDirective.prototype.ngOnChanges=function(){var e=this;if(!this.myAuthBackground)return void(this.el.nativeElement.style.backgroundImage="");if(!/\/?(image\/|title\/file|getgamefile)/i.test(this.myAuthBackground))return void(this.el.nativeElement.style.backgroundImage="url('"+this.myAuthBackground+"')");var t=this.myAuthBackground.toLowerCase().replace("getgamefile?path=","title/file?path=");if(this.dataCache.exists(t,this.myAuthUniqueId))return void(this.el.nativeElement.style.backgroundImage="url('"+this.dataCache.get(t,this.myAuthUniqueId)+"')");var n=new r.RequestOptions({responseType:r.ResponseContentType.Blob});this.http.get(t,n).subscribe(function(n){e.dataCache.set(t,URL.createObjectURL(n.blob()),e.myAuthUniqueId),e.el.nativeElement.style.backgroundImage="url('"+e.dataCache.get(t,e.myAuthUniqueId)+"')"},function(t){e.el.nativeElement.style.backgroundImage="url('')",e.error.emit(t)})},__decorate([i.Input("myAuthBackground"),__metadata("design:type",String)],AuthenticatedBackgroundDirective.prototype,"myAuthBackground",void 0),__decorate([i.Input("myAuthUniqueId"),__metadata("design:type",String)],AuthenticatedBackgroundDirective.prototype,"myAuthUniqueId",void 0),__decorate([i.Output("error"),__metadata("design:type",Object)],AuthenticatedBackgroundDirective.prototype,"error",void 0),AuthenticatedBackgroundDirective=__decorate([i.Directive({selector:"[myAuthBackground]"}),__metadata("design:paramtypes",[i.ElementRef,o.AuthHttp,a.DataCacheService])],AuthenticatedBackgroundDirective)}();t.AuthenticatedBackgroundDirective=s},229:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(23),a=n(54),s=function(){function AuthenticatedSrcDirective(e,t,n){this.el=e,this.http=t,this.dataCache=n,this.error=new i.EventEmitter}return AuthenticatedSrcDirective.prototype.ngOnChanges=function(){var e=this;if(!this.myAuthSrc)return void(this.el.nativeElement.src="");if(!/\/?(image\/|title\/file|getgamefile)/i.test(this.myAuthSrc))return void(this.el.nativeElement.src=this.myAuthSrc);var t=this.myAuthSrc.toLowerCase().replace("getgamefile?path=","title/file?path=");if(this.dataCache.exists(t,this.myAuthUniqueId))return void(this.el.nativeElement.src=this.dataCache.get(t,this.myAuthUniqueId));var n=new r.RequestOptions({responseType:r.ResponseContentType.Blob});this.http.get(t,n).subscribe(function(n){e.dataCache.set(t,URL.createObjectURL(n.blob()),e.myAuthUniqueId),e.el.nativeElement.src=e.dataCache.get(t,e.myAuthUniqueId)},function(t){e.el.nativeElement.src="",e.error.emit(t)})},__decorate([i.Input("myAuthSrc"),__metadata("design:type",String)],AuthenticatedSrcDirective.prototype,"myAuthSrc",void 0),__decorate([i.Input("myAuthUniqueId"),__metadata("design:type",String)],AuthenticatedSrcDirective.prototype,"myAuthUniqueId",void 0),__decorate([i.Output("error"),__metadata("design:type",Object)],AuthenticatedSrcDirective.prototype,"error",void 0),AuthenticatedSrcDirective=__decorate([i.Directive({selector:"[myAuthSrc]"}),__metadata("design:paramtypes",[i.ElementRef,o.AuthHttp,a.DataCacheService])],AuthenticatedSrcDirective)}();t.AuthenticatedSrcDirective=s},23:function(e,t,n){"use strict";function tokenNotExpired(e,t){void 0===e&&(e=c.DEFAULT_TOKEN_NAME);var n=t||localStorage.getItem(e),i=new y;return null!=n&&!i.isTokenExpired(n)}function provideAuth(e){return[{provide:f,deps:[s.Http,s.RequestOptions],useFactory:function(t,n){return new f(new p(e),t,n)}}]}function toObject(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function objectAssign(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i,r,o=toObject(e),a=1;a<arguments.length;a++){i=Object(arguments[a]);for(var s in i)m.call(i,s)&&(o[s]=i[s]);if(Object.getOwnPropertySymbols){r=Object.getOwnPropertySymbols(i);for(var l=0;l<r.length;l++)g.call(i,r[l])&&(o[r[l]]=i[r[l]])}}return o}var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=this&&this.__decorate||function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(n,i){t(n,i,e)}},s=n(11),l=n(2),u=n(0);n(97),n(96),n(98);var c=function(){function AuthConfigConsts(){}return AuthConfigConsts}();c.DEFAULT_TOKEN_NAME="token",c.DEFAULT_HEADER_NAME="Authorization",c.HEADER_PREFIX_BEARER="Bearer ",t.AuthConfigConsts=c;var d={headerName:c.DEFAULT_HEADER_NAME,headerPrefix:null,tokenName:c.DEFAULT_TOKEN_NAME,tokenGetter:function(){return localStorage.getItem(d.tokenName)},noJwtError:!1,noClientCheck:!1,globalHeaders:[],noTokenScheme:!1},p=function(){function AuthConfig(e){e=e||{},this._config=objectAssign({},d,e),this._config.headerPrefix?this._config.headerPrefix+=" ":this._config.noTokenScheme?this._config.headerPrefix="":this._config.headerPrefix=c.HEADER_PREFIX_BEARER,e.tokenName&&!e.tokenGetter&&(this._config.tokenGetter=function(){return localStorage.getItem(e.tokenName)})}return AuthConfig.prototype.getConfig=function(){return this._config},AuthConfig}();t.AuthConfig=p;var h=function(e){function AuthHttpError(){return null!==e&&e.apply(this,arguments)||this}return i(AuthHttpError,e),AuthHttpError}(Error);t.AuthHttpError=h;var f=function(){function AuthHttp(e,t,n){var i=this;this.http=t,this.defOpts=n,this.config=e.getConfig(),this.tokenStream=new u.Observable(function(e){e.next(i.config.tokenGetter())})}return AuthHttp.prototype.mergeOptions=function(e,t){var n=t||new s.RequestOptions;return this.config.globalHeaders&&this.setGlobalHeaders(this.config.globalHeaders,e),n=n.merge(new s.RequestOptions(e))},AuthHttp.prototype.requestHelper=function(e,t){var n=new s.RequestOptions(e);return t&&(n=n.merge(t)),this.request(new s.Request(this.mergeOptions(n,this.defOpts)))},AuthHttp.prototype.requestWithToken=function(e,t){if(this.config.noClientCheck||tokenNotExpired(void 0,t))e.headers.set(this.config.headerName,this.config.headerPrefix+t);else if(!this.config.noJwtError)return new u.Observable(function(e){e.error(new h("No JWT present or has expired"))});return this.http.request(e)},AuthHttp.prototype.setGlobalHeaders=function(e,t){t.headers||(t.headers=new s.Headers),e.forEach(function(e){var n=Object.keys(e)[0],i=e[n];t.headers.set(n,i)})},AuthHttp.prototype.request=function(e,t){var n=this;if("string"==typeof e)return this.get(e,t);var i=e;return u.Observable.defer(function(){var e=n.config.tokenGetter();return e instanceof Promise?u.Observable.fromPromise(e).mergeMap(function(e){return n.requestWithToken(i,e)}):n.requestWithToken(i,e)})},AuthHttp.prototype.get=function(e,t){return this.requestHelper({body:"",method:s.RequestMethod.Get,url:e},t)},AuthHttp.prototype.post=function(e,t,n){return this.requestHelper({body:t,method:s.RequestMethod.Post,url:e},n)},AuthHttp.prototype.put=function(e,t,n){return this.requestHelper({body:t,method:s.RequestMethod.Put,url:e},n)},AuthHttp.prototype.delete=function(e,t){return this.requestHelper({body:"",method:s.RequestMethod.Delete,url:e},t)},AuthHttp.prototype.patch=function(e,t,n){return this.requestHelper({body:t,method:s.RequestMethod.Patch,url:e},n)},AuthHttp.prototype.head=function(e,t){return this.requestHelper({body:"",method:s.RequestMethod.Head,url:e},t)},AuthHttp.prototype.options=function(e,t){return this.requestHelper({body:"",method:s.RequestMethod.Options,url:e},t)},AuthHttp}();f=r([l.Injectable(),o("design:paramtypes",[p,s.Http,s.RequestOptions])],f),t.AuthHttp=f;var y=function(){function JwtHelper(){}return JwtHelper.prototype.urlBase64Decode=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}return this.b64DecodeUnicode(t)},JwtHelper.prototype.b64decode=function(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="";if(e=String(e).replace(/=+$/,""),e.length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var i=0,r=void 0,o=void 0,a=0;o=e.charAt(a++);~o&&(r=i%4?64*r+o:o,i++%4)?n+=String.fromCharCode(255&r>>(-2*i&6)):0)o=t.indexOf(o);return n},JwtHelper.prototype.b64DecodeUnicode=function(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))},JwtHelper.prototype.decodeToken=function(e){var t=e.split(".");if(3!==t.length)throw new Error("JWT must have 3 parts");var n=this.urlBase64Decode(t[1]);if(!n)throw new Error("Cannot decode the token");return JSON.parse(n)},JwtHelper.prototype.getTokenExpirationDate=function(e){var t;if(t=this.decodeToken(e),!t.hasOwnProperty("exp"))return null;var n=new Date(0);return n.setUTCSeconds(t.exp),n},JwtHelper.prototype.isTokenExpired=function(e,t){var n=this.getTokenExpirationDate(e);return t=t||0,null!=n&&!(n.valueOf()>(new Date).valueOf()+1e3*t)},JwtHelper}();t.JwtHelper=y,t.tokenNotExpired=tokenNotExpired,t.AUTH_PROVIDERS=[{provide:f,deps:[s.Http,s.RequestOptions],useFactory:function(e,t){return new f(new p,e,t)}}],t.provideAuth=provideAuth;var m=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,v=b=function(){function AuthModule(e){if(e)throw new Error("AuthModule is already loaded. Import it in the AppModule only")}return AuthModule.forRoot=function(e){return{ngModule:b,providers:[{provide:p,useValue:e}]}},AuthModule}();v=b=r([l.NgModule({imports:[s.HttpModule],providers:[f,y]}),a(0,l.Optional()),a(0,l.SkipSelf()),o("design:paramtypes",[v])],v),t.AuthModule=v;var b},230:function(e,t,n){"use strict";function authHttpServiceFactory(e,t){return new o.AuthHttp(new o.AuthConfig({noJwtError:!0}),e,t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(23);t.authHttpServiceFactory=authHttpServiceFactory;var a=function(){function AuthenticationModule(){}return AuthenticationModule=__decorate([i.NgModule({providers:[{provide:o.AuthHttp,useFactory:authHttpServiceFactory,deps:[r.Http,r.RequestOptions]}]})],AuthenticationModule)}();t.AuthenticationModule=a},231:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function DashLaunchCategoryFilterPipe(){}return DashLaunchCategoryFilterPipe.prototype.transform=function(e,t){return e&&t?e.filter(function(e){return e.category===t}):e},DashLaunchCategoryFilterPipe=__decorate([i.Pipe({name:"myDashLaunchCategoryFilter"})],DashLaunchCategoryFilterPipe)}();t.DashLaunchCategoryFilterPipe=r},232:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function DashLaunchReadableCategory(){this.categories={oopsie:{webui:"No translation",dashlaunch:"Sorry there is no description associated with this option (oops!)"},paths:{webui:"Path settings",dashlaunch:"Path settings such as Quick Launch Buttons"},behavior:{webui:"Behavioral settings",dashlaunch:"Settings that affect the behaviour of the Xbox system software"},net:{webui:"Network settings",dashlaunch:"Settings that affect network"},timer:{webui:"Settings that run on timers",dashlaunch:"Settings that run on timers"},plugins:{webui:"Path settings for plugins",dashlaunch:"Path settings for dll plugins"},extern:{webui:"DashLaunch Installer settings",dashlaunch:"Options stored in dash launch that change how this app works"}}}return DashLaunchReadableCategory.prototype.transform=function(e){return e.toLowerCase()in this.categories?this.categories[e.toLowerCase()].webui:e},DashLaunchReadableCategory=__decorate([i.Pipe({name:"myDashLaunchReadableCategory"})],DashLaunchReadableCategory)}();t.DashLaunchReadableCategory=r},233:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function DashLaunchReadableName(){this.names={oopsie:{webui:"No translation",dashlaunch:"Sorry there is no description associated with this option (oops!)"},plugin1:{webui:"Plugin loaded by DashLaunch",dashlaunch:"plugin dll loaded with DashLaunch on bootup cannot unload with DashLaunch unload button!"},plugin2:{webui:"Plugin loaded by DashLaunch",dashlaunch:"plugin dll loaded with DashLaunch on bootup cannot unload with DashLaunch unload button!"},plugin3:{webui:"Plugin loaded by DashLaunch",dashlaunch:"plugin dll loaded with DashLaunch on bootup cannot unload with DashLaunch unload button!"},plugin4:{webui:"Plugin loaded by DashLaunch",dashlaunch:"plugin dll loaded with DashLaunch on bootup cannot unload with DashLaunch unload button!"},plugin5:{webui:"Plugin loaded by DashLaunch",dashlaunch:"plugin dll loaded with DashLaunch on bootup cannot unload with DashLaunch unload button!"},but_a:{webui:"Title to load when holding A on boot",dashlaunch:"Holding A button on boot or when titles are exiting will cause this to load instead"},but_b:{webui:"Title to load when holding B on boot",dashlaunch:"Holding B button on boot or when titles are exiting will cause this to load instead"},but_x:{webui:"Title to load when holding X on boot",dashlaunch:"Holding X button on boot or when titles are exiting will cause this to load instead"},but_y:{webui:"Title to load when holding Y on boot",dashlaunch:"Holding Y button on boot or when titles are exiting will cause this to load instead"},start:{webui:"Title to load when holding Start on boot",dashlaunch:"Holding Start button on boot or when titles are exiting will cause this to load instead"},back:{webui:"Title to load when holding Back on boot",dashlaunch:"Holding Back button on boot or when titles are exiting will cause this to load instead"},lbump:{webui:"Title to load when holding Left Bumber on boot",dashlaunch:"Holding Left Bumper on boot or when titles are exiting will cause this to load instead"},lthumb:{webui:"Title to load when holding Left Thumbstick on boot",dashlaunch:"Holding Left Thumbstick button down on boot or when titles are exiting will cause this to load instead"},rthumb:{webui:"Title to load when holding Right Thumbstick on boot",dashlaunch:"Holding Right Thumbstick button down on boot or when titles are exiting will cause this to load instead"},default:{webui:"Title to load by default (when no buttons are held)",dashlaunch:"if set, when no button is held any time dash attempts to load this will load instead"},guide:{webui:"Title to load when Xbox powered on with the Guide button",dashlaunch:"If set turning console on with the remote or controller guide button will launch this (one time)"},power:{webui:"Title to load when Xbox powered on with the Power button",dashlaunch:"If set turning console on with the console power button will launch this (one time)"},dumpfile:{webui:"Filename of crash dumps (when Exception Handler is enabled)",dashlaunch:"Crash dumps dump to this file if exchandler option is enabled"},configapp:{webui:"Title to load when the System Settings option in miniblades is used",dashlaunch:"Exiting via miniblades using option System Settings will go to this program if Right Bumper is not held"},nxemini:{webui:"Enable launch event when pressing Y in miniblades",dashlaunch:"If enabled pressing Y in miniblades while in official dash will cause a launch event"},pingpatch:{webui:"Remove ping limit for system link",dashlaunch:"If enabled ping limit will be removed for system link play"},contpatch:{webui:"Soft patch addon and DLC content license info",dashlaunch:"if enabled addon and DLC content liecense info will be soft patched when accessed"},xblapatch:{webui:"Soft patch XBLA container content license info",dashlaunch:"if enabled XBLA container content liecense info will be soft patched when accessed"},licpatch:{webui:"Spoof replies from Xam License Mask function (for extracted XBLA)",dashlaunch:"if enabled replies from Xam License Mask function wil be spoofed (usually required for extracted xbla)"},dvdexitdash:{webui:"Return to official dash after eject",dashlaunch:"If enabled ejecting a game or DVD video will return to official dash"},xblaexitdash:{webui:"Return to official dash after exeting an XBLA game through its own menu",dashlaunch:"If enabled exiting a XBLA game through its own menu will return you to official dash"},nosysexit:{webui:"Prevent System Settings option in miniblades from launching official dash",dashlaunch:"If enabled system options in miniblades will not exit to official dash"},regionspoof:{webui:"Enable temporary region spoofing when holding RB while launching a game",dashlaunch:"If enabled holding RB during title launch will cause the region to be spoofed to the title for it's duration"},region:{webui:"Region used when spoofing the regioin on a game with RB",dashlaunch:"The region applied when RB is held on title launch and regionspoof is enabled"},nohud:{webui:"Disable the miniblades",dashlaunch:"When enabled the miniblades are made inaccessible"},noupdater:{webui:"Make XAM look for updates in $$ystemUpdate (instead of $SystemUpdate)",dashlaunch:"When enabled XAM is patched to look for updates at $$ystemUpdate"},signnotice:{webui:"Attempt to dismiss annoying signin notice messages",dashlaunch:"When enabled DashLaunch will attempt to dismiss annoying signin notice messages"},xhttp:{webui:"Allow insecure access with XHttp",dashlaunch:"When enabled XHttp is patched in XAM to allow insecure access"},liveblock:{webui:"Block LIVE sites in DNS resolver",dashlaunch:"When enabled DNS resolver blocks LIVE sites"},livestrong:{webui:"Block more domains than with liveblock (liveblock must be enabled)",dashlaunch:"Has no effect when liveblock is disbled. When enabled with liveblock a more extensive list of domains are blocked than with liveblock alone"},autoshut:{webui:"Select 'shutdown' by default when holding Guide button (affects autooff)",dashlaunch:"If enabled holding Guide button will have 'shutdown' selected, toggling affects autooff"},autooff:{webui:"Shutdown when holding Guide button, bypassing shutdown options (affects autoshut)",dashlaunch:"If enabled holding Guide button will cause the console to shut down instead of display shutdown options, toggling affects autoshut"},hddtimer:{webui:"Polling frequency (in seconds) to keep alive hdd's when hddalive is enabled",dashlaunch:"When hddalive is enabled this sets the frequency (in seconds) that DashLaunch will poll drives at"},hddalive:{webui:"Poll any USB drive with 'alive.txt' in its root at the interval set in hddtimer",dashlaunch:"If enabled, any USB drive with the file 'alive.txt' in it's root directory will be polled at hddtimer intervals"},temptime:{webui:"Broadcast frequency (in seconds) for temperature info when tempbcast is enabled",dashlaunch:"Frequency (in seconds) that temperature info is broadcast when enabled"},tempport:{webui:"Broadcast port for temperature info when tempbcast is enabled",dashlaunch:"Port that temperature will be broadcast on when enabled"},tempbcast:{webui:"Enable broadcasting of temperature info when a network connection is available",dashlaunch:"When enabled and a network connection is provided, temperature data will be broadcast at temptime intervals to tempport"},exchandler:{webui:"Exit on non-fatal crashes instead of crashing the console",dashlaunch:"When enabled non-fatal crashes will exit instead of crash the console"},fatalfreeze:{webui:"Freeze the console on crash events",dashlaunch:"If enabled crash events will freeze the console"},fatalreboot:{webui:"Hard reboot on fatal crashes (fatalfreeze must be disabled)",dashlaunch:"When enabled console will hard reboot on fatal crashes - does nothing if fatalfreeze is enabled"},safereboot:{webui:"Soft reboot on fatal crashes (not jtag friendly)",dashlaunch:"When enabled console will soft reboot on fatal crashes (not jtag friendly)"},debugout:{webui:"Reroute debug prints to UART",dashlaunch:"If enabled debug prints are rerouted to UART"},passlaunch:{webui:"Don't clean up launch data",dashlaunch:"If enabled DashLaunch will not clean up launchdata"},sockpatch:{webui:"Patch sockets",dashlaunch:"Don't enable this if you don't know what it does."},fakelive:{webui:"Fake live",dashlaunch:"Don't enable this if you don't know what it does."},remotenxe:{webui:"Go to official dash when powering on Xbox with IR remote power button",dashlaunch:"If enabled powering on the console with IR remote power button will go to official dash (one time)"},nonetstore:{webui:"Remove cloud storage from disk selection dialogs",dashlaunch:"If enabled cloud storage should not show up in disk selection dialogs"},shuttemps:{webui:"Show snapshot of temperatures on shutdown options screen (disables autooff)",dashlaunch:"If enabled a snapshot of the system temperature data will be displayed on the shutdown screen that appears when you hold guide button (enabling will disable autooff)"},devprof:{webui:"Prevent devkit profiles from showing as corrupt",dashlaunch:"If enabled devkit profiles will not appear as corrupt"},devlink:{webui:"Encrypt system link data for communication with devkits",dashlaunch:"If enabled system link data will be encrypted for communication with devkits"},ftpserv:{webui:"Enable DashLaunch installers FTP server",dashlaunch:"If enabled the installer will start it's FTP server\n!! only runs while the installer is running !!"},ftpport:{webui:"DashLaunch installers FTP servers port",dashlaunch:"Sets the port for the installer FTP server"},updserv:{webui:"Enable DashLaunch installers XeBuild update server",dashlaunch:"if enabled the xebuild update server will be started\n!! only runs while installer is running !!"},calaunch:{webui:"Show launch menu instead of options when Dash Launch installer is started",dashlaunch:"If enabled installer will start to the launch menu instead of options"},autoswap:{webui:"Automatic disk swapping via Dash Launch",dashlaunch:"If enabled dash launch will perform automatic disk swapping\nWARNING!! do not enable if you use FSD or swap.xex fot this!"},nohealth:{webui:"Prevent Kinect health pseudo video from showing at game launch",dashlaunch:"If enabled kinect health pseudo video at game launch will not be shown"},nooobe:{webui:"Don't show dash locale setup screens when dash starts if settings already exist",dashlaunch:"If enabled dash locale setup screens when settings already exist will not be shown when dash starts"},autofake:{webui:"Automatically enable fakelive functionality only for official dash and indie game sessions",dashlaunch:"If enabled fakelive functionality will automatically be enabled only for official dash and indie game sessions.\nDisabling this option also disables autocont."},autofake0:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake1:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake2:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake3:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake4:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake5:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake6:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake7:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake8:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autofake9:{webui:"Automatically enable fakelive functionality for this TitleID (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever this TitleID is played fakelive will be temporarily enabled."},autocont:{webui:"Enable contpatch when a community game is launched (if autofake is enabled)",dashlaunch:"When autofake is enabled, whenever a community game is launched contpatch will be temporarily enabled. enabling this option will enable autofake."},fahrenheit:{webui:"Show all temperatures in Fahrenheit instead of Celsius",dashlaunch:"If enabled temps in installer and in guide (shuttemps option) will be shown in farenheit instead of celcius."},fakeanim:{webui:"Title to run before any other options occur (intended to replace with videoplayer for bootanim)",dashlaunch:"if set, this will be run as a title before any other option occurs, does not get circumvented by held buttons or default item; intended for a short video player to allow replacing bootanim"}}}return DashLaunchReadableName.prototype.transform=function(e){return e.toLowerCase()in this.names?this.names[e.toLowerCase()].webui:e},DashLaunchReadableName=__decorate([i.Pipe({name:"myDashLaunchReadableName"})],DashLaunchReadableName)}();t.DashLaunchReadableName=r},234:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function DashLaunchReadableValue(){this.values={"":"not set","0x00ff":"NTSC/US","0x01fe":"NTSC/JAP","0x01ff":"NTSC/JAP","0x01fc":"NTSC/KOR","0x0101":"NTSC/HK","0x02fe":"PAL/EU","0x0201":"PAL/AUS","0x7fff":"DEVKIT/ALL"}}return DashLaunchReadableValue.prototype.transform=function(e){return e.toLowerCase()in this.values?this.values[e.toLowerCase()]:e},DashLaunchReadableValue=__decorate([i.Pipe({name:"myDashLaunchReadableValue"})],DashLaunchReadableValue)}();t.DashLaunchReadableValue=r},235:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(12),o=function(){function LiveBackgroundComponent(e){this.dataService=e}return LiveBackgroundComponent.prototype.getLiveInfo=function(){var e=this;this.dataService.await("get","liveInfo").subscribe(function(t){return e.liveinfo=t},function(){return e.liveinfo=null})},LiveBackgroundComponent.prototype.ngOnInit=function(){this.getLiveInfo()},LiveBackgroundComponent=__decorate([i.Component({selector:"my-live-background",template:'<div *ngIf="liveinfo" [myAuthBackground]="liveinfo.images.background" [myAuthUniqueId]="liveinfo.titleid"></div>',styles:["\n        div\n        {\n            background-attachment: fixed;\n            background-color: #939499;\n            background-size: cover;\n            background-position: center center;\n            \n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            \n            margin: 0;\n            padding: 0;\n            \n            position: fixed;\n            z-index: -1;\n\n            opacity: 0.4;\n        }\n    "]}),__metadata("design:paramtypes",[r.LiveDataService])],LiveBackgroundComponent)}();t.LiveBackgroundComponent=o},236:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(91),o=n(39),a=n(12),s=function(e){function LiveInfoComponent(t){var n=e.call(this)||this;return n.dataService=t,n}return __extends(LiveInfoComponent,e),LiveInfoComponent.prototype.getLiveInfo=function(){var e=this;this.dataService.await("get","liveInfo").subscribe(function(t){return e.liveinfo=t?new o.LiveInfo(t):null},function(t){console.log(e,t),e.liveinfo=null})},LiveInfoComponent.prototype.ngOnInit=function(){this.getLiveInfo()},LiveInfoComponent=__decorate([i.Component({selector:"my-live-info",template:n(268),styles:[n(258)]}),__metadata("design:paramtypes",[a.LiveDataService])],LiveInfoComponent)}(r.Parameterized);t.LiveInfoComponent=s},237:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(91),o=n(25),a=function(e){function MenuComponent(t){var n=e.call(this)||this;return n.auth=t,n}return __extends(MenuComponent,e),MenuComponent.prototype.ngOnInit=function(){var e=this;this.auth.loginRequired.subscribe(function(t){return e.loginRequired=t},function(e){return console.log(e)})},MenuComponent=__decorate([i.Component({selector:"my-menu",template:n(270),styles:[n(260)]}),__metadata("design:paramtypes",[o.AuthenticationService])],MenuComponent)}(r.Parameterized);t.MenuComponent=a},238:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function MultiDiscEntryLimitPipe(){}return MultiDiscEntryLimitPipe.prototype.transform=function(e,t){return e&&t?e.slice(0,t):e},MultiDiscEntryLimitPipe=__decorate([i.Pipe({name:"myMultiDiscEntryLimit"})],MultiDiscEntryLimitPipe)}();t.MultiDiscEntryLimitPipe=r},239:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function PluginReadableFeaturePipe(){this.features={multidisc:"Multi Disc",trainers:"Trainers",systemlink:"System Link",gamepad:"Game Pad",achievements:"Achievements",threads:"Threads",httpdaemon:"Web Server",debugger:"Debugger",network:"Network"}}return PluginReadableFeaturePipe.prototype.transform=function(e){return"string"!=typeof e||0===e.length?e:this.features[e]||e},PluginReadableFeaturePipe=__decorate([i.Pipe({name:"myPluginReadableFeature"})],PluginReadableFeaturePipe)}();t.PluginReadableFeaturePipe=r},240:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.Alpha=1]="Alpha",e[e.Beta=2]="Beta",e[e.Release=3]="Release"}(t.VersionType||(t.VersionType={}));var i=function(){function VersionNumber(){}return VersionNumber}();t.VersionNumber=i;var r=function(){function Version(){}return Version}();t.Version=r;var o=function(){function Paths(){}return Paths}();t.Paths=o;var a=function(){function Features(){}return Features}();t.Features=a;var s=function(){function Plugin(){}return Plugin}();t.Plugin=s},241:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ProfileFilterPipe(){}return ProfileFilterPipe.prototype.transform=function(e,t){return e&&t?e.filter(function(e){var n=!0;return Object.keys(t).map(function(i){return n=n&&e[i]===t[i]}),n}):e},ProfileFilterPipe=__decorate([i.Pipe({name:"myProfileFilter"})],ProfileFilterPipe)}();t.ProfileFilterPipe=r},242:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ApiService(){this.title="Angular 2"}return ApiService=__decorate([i.Injectable()],ApiService)}();t.ApiService=r},243:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function IsoTimestampPipe(){}return IsoTimestampPipe.prototype.transform=function(e){if("string"!=typeof e)return e;var t="",n=["-","-","T",":",":",".",""];return/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{1,3})/.exec(e).slice(1).forEach(function(e,i){t+=e+n[i]}),t},IsoTimestampPipe=__decorate([i.Pipe({name:"myIsoTimestamp"})],IsoTimestampPipe)}();t.IsoTimestampPipe=r},244:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ObjectKeysPipe(){}return ObjectKeysPipe.prototype.transform=function(e){return e?Object.keys(e):e},ObjectKeysPipe=__decorate([i.Pipe({name:"myObjectKeys",pure:!1})],ObjectKeysPipe)}();t.ObjectKeysPipe=r},245:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ReadablePathPipe(){this.paths={"/SystemRoot":"Flash:","/Device/BuiltInMuUsb/Storage":"OnBoardMU:","/Device/BuiltInMuMmc/Storage":"OnBoardMU:","/Device/BuiltInMuSfc":"OnBoardMU:","/Device/Cdrom0":"Dvd:","/Device/Harddisk0/Partition1":"Hdd1:","/Device/Harddisk0/Partition0":"Hdd0:","/Device/Harddisk0/SystemPartition":"HddX:","/sep":"SysExt:","/Device/Mu0":"Memunit0:","/Device/Mu1":"Memunit1:","/Device/Mass0":"Usb0:","/Device/Mass1":"Usb1:","/Device/Mass2":"Usb2:","/Device/HdDvdPlayer":"HdDvdPlayer:","/Device/HdDvdStorage":"HdDvdStorage:","/Device/Transfercable":"Transfercable:","/Device/Transfercable/Compatibility/Xbox1":"TransfercableXbox1:","/Device/Mass0PartitionFile/Storage":"USBMU0:","/Device/Mass1PartitionFile/Storage":"USBMU1:","/Device/Mass2PartitionFile/Storage":"USBMU2:","/Device/Mass0PartitionFile/StorageSystem":"USBMUCache0:","/Device/Mass1PartitionFile/StorageSystem":"USBMUCache1:","/Device/Mass2PartitionFile/StorageSystem":"USBMUCache2:","\\SystemRoot":"Flash:","\\Device\\BuiltInMuUsb\\Storage":"OnBoardMU:","\\Device\\BuiltInMuMmc\\Storage":"OnBoardMU:","\\Device\\BuiltInMuSfc":"OnBoardMU:","\\Device\\Cdrom0":"Dvd:","\\Device\\Harddisk0\\Partition1":"Hdd1:","\\Device\\Harddisk0\\Partition0":"Hdd0:","\\Device\\Harddisk0\\SystemPartition":"HddX:","\\sep":"SysExt:","\\Device\\Mu0":"Memunit0:","\\Device\\Mu1":"Memunit1:","\\Device\\Mass0":"Usb0:","\\Device\\Mass1":"Usb1:","\\Device\\Mass2":"Usb2:","\\Device\\HdDvdPlayer":"HdDvdPlayer:","\\Device\\HdDvdStorage":"HdDvdStorage:","\\Device\\Transfercable":"Transfercable:","\\Device\\Transfercable\\Compatibility\\Xbox1":"TransfercableXbox1:","\\Device\\Mass0PartitionFile\\Storage":"USBMU0:","\\Device\\Mass1PartitionFile\\Storage":"USBMU1:","\\Device\\Mass2PartitionFile\\Storage":"USBMU2:","\\Device\\Mass0PartitionFile\\StorageSystem":"USBMUCache0:","\\Device\\Mass1PartitionFile\\StorageSystem":"USBMUCache1:","\\Device\\Mass2PartitionFile\\StorageSystem":"USBMUCache2:"}}return ReadablePathPipe.prototype.transform=function(e){if("string"!=typeof e||0===e.length)return e;for(var t=0,n=Object.keys(this.paths);t<n.length;t++){var i=n[t];if(e.startsWith(i))return e.replace(i,this.paths[i]).replace(/\//g,"\\")}return e.replace(/\//g,"\\")},ReadablePathPipe=__decorate([i.Pipe({name:"myReadablePath"})],ReadablePathPipe)}();t.ReadablePathPipe=r},246:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ReadableSizePipe(){this.sizes=["B","KiB","MiB","GiB","TiB","PiB"]}return ReadableSizePipe.prototype.transform=function(e){if("number"!=typeof e)return e;var t=Math.floor(Math.log(e)/Math.log(1024));return t=t<0?0:t,(e/Math.pow(1024,t)).toFixed(2)+" "+this.sizes[t]},ReadableSizePipe=__decorate([i.Pipe({name:"myReadableSize"})],ReadableSizePipe)}();t.ReadableSizePipe=r},247:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function ScrollIntoViewDirective(e){this.el=e}return ScrollIntoViewDirective.prototype.ngOnChanges=function(){this.myScrollIntoView&&this.el.nativeElement.scrollIntoView()},__decorate([i.Input("myScrollIntoView"),__metadata("design:type",Object)],ScrollIntoViewDirective.prototype,"myScrollIntoView",void 0),ScrollIntoViewDirective=__decorate([i.Directive({selector:"[myScrollIntoView]"}),__metadata("design:paramtypes",[i.ElementRef])],ScrollIntoViewDirective)}();t.ScrollIntoViewDirective=r},248:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(249),o=function(){function SMCReadableInfoPipe(){this.info={AVPack:r.AVPack,TrayState:r.TrayState,DVDMediaType:r.DVDMediaType,TiltState:r.TiltState}}return SMCReadableInfoPipe.prototype.transform=function(e,t){return"number"!=typeof e||"string"!=typeof t?e:this.info[t]?this.info[t][e]||e:e},SMCReadableInfoPipe=__decorate([i.Pipe({name:"mySMCReadableInfo"})],SMCReadableInfoPipe)}();t.SMCReadableInfoPipe=o},249:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});!function(e){e[e.Unknown=0]="Unknown",e[e.HDMI=1]="HDMI",e[e.Component=2]="Component",e[e.VGA=3]="VGA",e[e["Composite TV"]=4]="Composite TV",e[e["Composite HD"]=5]="Composite HD",e[e["HDMI Audio"]=6]="HDMI Audio"}(t.AVPack||(t.AVPack={}));!function(e){e[e.Idle=0]="Idle",e[e.Closing=1]="Closing",e[e.Open=2]="Open",e[e.Opening=3]="Opening",e[e.Closed=4]="Closed",e[e.Error=5]="Error"}(t.TrayState||(t.TrayState={}));!function(e){e[e.None=0]="None",e[e["Xbox 360"]=1]="Xbox 360",e[e["Xbox Classic"]=2]="Xbox Classic",e[e.Unknown=3]="Unknown",e[e["DVD Audio"]=4]="DVD Audio",e[e["DVD Movie"]=5]="DVD Movie",e[e["CD Video"]=6]="CD Video",e[e["CD Audio"]=7]="CD Audio",e[e["CD Data"]=8]="CD Data",e[e["Game Movie Hybrid"]=9]="Game Movie Hybrid",e[e["HD DVD"]=10]="HD DVD"}(t.DVDMediaType||(t.DVDMediaType={}));!function(e){e[e.Vertical=0]="Vertical",e[e.Horizontal=1]="Horizontal"}(t.TiltState||(t.TiltState={}));var i=function(){function TargetTemperature(){}return TargetTemperature}();t.TargetTemperature=i;var r=function(){function SMCTemperature(){}return SMCTemperature}();t.SMCTemperature=r;var o=function(){function SMC(){}return SMC}();t.SMC=o},25:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(22),o=n(11),a=n(20),s=n(23),l=n(55),u=n(12),c=n(80),d=function(){function AuthenticationService(e,t,n,i){var o=this;this.router=e,this.http=t,this.dataservice=n,this.livedataservice=i,this.status=new a.ReplaySubject(1),this.returnUrl="/",this.loginRequired=new c.BehaviorSubject(!1),this.refreshing=new a.ReplaySubject,this.router.events.filter(function(e){return e instanceof r.NavigationStart}).filter(function(e){return!e.url.startsWith("/login")}).subscribe(function(e){o.returnUrl=e.url}),n.headers.filter(function(e){return e&&e.has("X-Security-Enabled")}).map(function(e){return"1"===e.get("X-Security-Enabled")}).subscribe(function(e){return o.updateLoginRequired(e)},function(e){return console.log(o,e)}),i.headers.filter(function(e){return e&&e.has("X-Security-Enabled")}).map(function(e){return"1"===e.get("X-Security-Enabled")}).subscribe(function(e){return o.updateLoginRequired(e)},function(e){return console.log(o,e)}),n.errors.filter(function(e){return 401===e.error.status}).subscribe(function(){return o.updateLoginRequired(!0)},function(e){return console.log(o,e)}),i.errors.filter(function(e){return 401===e.error.status}).subscribe(function(){return o.updateLoginRequired(!0)},function(e){return console.log(o,e)}),this.status.next(0)}return AuthenticationService.prototype.updateLoginRequired=function(e){this.loginRequired.getValue()!==e&&(this.loginRequired.next(e),e?this.logout():this.afterLogin())},AuthenticationService.prototype.afterLogin=function(){this.isLoggedIn()?(this.dataservice.refreshAll(),this.livedataservice.refreshAll(),this.router.navigateByUrl(this.returnUrl),this.status.next(0)):this.status.next(-1)},AuthenticationService.prototype.login=function(e,t){var n=this;this.refreshing.next({method:"post",request:"authenticate",busy:!0});var i=new o.URLSearchParams;i.append("username",e),i.append("password",t),this.http.post("/authenticate",i).map(function(e){return e.json()}).finally(function(){return n.refreshing.next({method:"post",request:"authenticate",busy:!1})}).subscribe(function(e){localStorage.setItem("token",e.token),n.afterLogin()},function(e){n.logout(e.status)})},AuthenticationService.prototype.loggedInStatus=function(){return this.status.asObservable()},AuthenticationService.prototype.isLoggedIn=function(){return!this.loginRequired.getValue()||s.tokenNotExpired()},AuthenticationService.prototype.logout=function(e){localStorage.removeItem("token"),this.dataservice.clearAll(),this.livedataservice.clearAll(),this.router.navigate(["/login"]),this.status.next(e||-2)},AuthenticationService=__decorate([i.Injectable(),__metadata("design:paramtypes",[r.Router,o.Http,l.DataService,u.LiveDataService])],AuthenticationService)}();t.AuthenticationService=d},250:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function Speed(){}return Speed}();t.Speed=i;var r=function(){function Size(){}return Size}();t.Size=r;var o=function(){function Bandwidth(){}return Bandwidth}();t.Bandwidth=o},251:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(56),o=function(){function TemperaturePercentagePipe(){this.temperatureConverter=new r.TemperatureConverterPipe}return TemperaturePercentagePipe.prototype.transform=function(e,t,n){return"number"!=typeof e||"boolean"!=typeof t?e:n&&"number"!=typeof n?e:(n=n||100,(e=t?e:this.temperatureConverter.transform(e,"C"))/n*100)},TemperaturePercentagePipe=__decorate([i.Pipe({name:"myTemperaturePercentage"})],TemperaturePercentagePipe)}();t.TemperaturePercentagePipe=o},252:function(e,t){},253:function(e,t){e.exports=":host {\n  display: block; }\n\nheader {\n  height: 100px; }\n\nmy-menu.fixed {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  width: 100%; }\n\nmain {\n  padding: 0; }\n\nfooter {\n  text-align: center;\n  font-size: 0.8em;\n  margin: 15px;\n  margin-bottom: 10em; }\n\nh1 {\n  text-shadow: 0px 1px 6px rgba(40, 41, 45, 0.5) !important; }\n  h1 my-live-info /deep/ .icon {\n    border-radius: 3px;\n    float: left;\n    vertical-align: middle;\n    margin: 0 20px 0 10px; }\n  h1 my-live-info.title, h1 my-live-info.developer-publisher {\n    display: block;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden; }\n  h1 my-live-info.title {\n    margin: 0 10px 0 0; }\n  h1 my-live-info.developer-publisher {\n    font-size: 1rem;\n    font-weight: normal; }\n"},254:function(e,t){e.exports="/*.main {\r\n  \r\n  background-color: rgba(40, 41, 45, 0.95);\r\n  \r\n  width: 100%;\r\n  margin: auto auto;\r\n\r\n  padding: 40px;\r\n  min-height: 400px;\r\n\r\n}\r\n*/\nh2 {\n  margin-bottom: 10px; }\n\n.hidden {\n  display: none; }\n\n.caption, .scale {\n  padding-left: 3px;\n  padding-right: 3px;\n  text-align: center; }\n\n.caption.left, .scale.min {\n  float: left;\n  text-align: left; }\n\n.caption.right, .scale.max {\n  float: right;\n  text-align: right; }\n\n.temp.cpu, .memory.used, .bandwidth.upstream {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(188, 41, 41, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Atransparent'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.temp.gpu {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(204, 153, 34, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Atransparent'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.temp.memory, .bandwidth.downstream {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(51, 229, 168, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Atransparent'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.temp.case {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(51, 181, 232, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Atransparent'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.bar {\n  height: 18px;\n  width: 100%;\n  border: 1px solid #444444;\n  text-align: center;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  line-height: 1; }\n\n.bar.memory.used {\n  background-color: #33e5a8; }\n\n/*\r\n.bar.bandwidth {\r\n    background-color: $aurora-green;\r\n}\r\n*/\n.bar.bandwidth.downstream {\n  margin-top: 12px; }\n\n.key.cpu, .key.used, .key.downstream {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(188, 41, 41, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Argba(68, 68, 68, 0.99999)'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.key.gpu {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(204, 153, 34, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Argba(68, 68, 68, 0.99999)'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.key.memory, .key.free, .key.upstream {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(51, 229, 168, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Argba(68, 68, 68, 0.99999)'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.key.case {\n  background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' style='fill%3Argba(51, 181, 232, 0.99999)%3Bstroke-width%3A2%3Bstroke%3Argba(68, 68, 68, 0.99999)'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat; }\n\n.key {\n  float: left;\n  width: 25%;\n  padding: 3px 3px 3px 20px;\n  background-size: 12px 12px !important;\n  background-position: 0 center !important; }\n\n.container.big {\n  float: left;\n  width: 50%; }\n\n.key.big {\n  width: auto;\n  width: initial; }\n\n.key.total {\n  width: 50%; }\n\n.items {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  padding: 0 15px 15px 15px; }\n\nsection {\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  -ms-flex-preferred-size: 30em;\n      flex-basis: 30em;\n  padding: 15px 15px 0 0;\n  width: 100%; }\n\nlabel {\n  width: 145px;\n  float: left;\n  font-weight: 600; }\n\nul, ol {\n  list-style-type: none;\n  list-style-position: inside;\n  clear: both; }\n\nol > li > label {\n  width: 20px; }\n\n.field {\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  overflow: hidden; }\n\n.field.description {\n  width: 100%;\n  color: #aaaaaa;\n  padding-bottom: 10px; }\n\n@media only screen and (min-width: 80em) {\n  .field.description {\n    width: auto;\n    color: inherit;\n    padding-bottom: 0;\n    padding-left: 20px; } }\n\nli.feature {\n  float: left;\n  width: 145px; }\n  li.feature span {\n    color: #bc2929; }\n  li.feature span.enabled {\n    color: #33e5a8; }\n\ndiv.temperature {\n  float: left;\n  width: 100px; }\n\ntable {\n  width: 100%; }\n  table th {\n    text-align: left;\n    font-weight: 600; }\n  table td.center {\n    text-align: center; }\n\nbutton {\n  margin-left: 30px;\n  min-width: 100px; }\n\nbutton.threadsstate {\n  float: right; }\n\nh3 {\n  margin-top: 10px;\n  margin-bottom: 5px; }\n\ndiv.dashlaunch {\n  padding: 0 15px 15px 15px; }\n"},255:function(e,t){e.exports="div.description {\n  padding: 15px;\n  overflow: hidden;\n  word-wrap: break-word; }\n\nimg.boxart {\n  float: left;\n  width: 250px;\n  padding: 15px; }\n\nsection ul {\n  list-style-type: none; }\n\nimg.banner {\n  position: relative;\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 15px; }\n\nul.screenshots {\n  margin-right: -15px; }\n  ul.screenshots li {\n    float: left;\n    border-right: 15px solid transparent;\n    border-bottom: 15px solid transparent;\n    position: relative;\n    display: none;\n    width: 100%;\n    padding-bottom: 66.67%; }\n    ul.screenshots li .screenshot {\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      background-position: center;\n      background-size: cover;\n      background-repeat: no-repeat; }\n  ul.screenshots li:nth-of-type(1), ul.screenshots li:nth-of-type(2), ul.screenshots li:nth-of-type(3) {\n    display: inherit;\n    display: initial; }\n  @media only screen and (min-width: 50em) {\n    ul.screenshots li {\n      width: 50%;\n      padding-bottom: 33.33333%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 70em) {\n    ul.screenshots li {\n      width: 33.33333%;\n      padding-bottom: 25%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 90em) {\n    ul.screenshots li {\n      width: 25%;\n      padding-bottom: 20%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 110em) {\n    ul.screenshots li {\n      width: 20%;\n      padding-bottom: 16.66667%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 130em) {\n    ul.screenshots li {\n      width: 16.66667%;\n      padding-bottom: 14.28571%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 150em) {\n    ul.screenshots li {\n      width: 14.28571%;\n      padding-bottom: 12.5%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 170em) {\n    ul.screenshots li {\n      width: 12.5%;\n      padding-bottom: 11.11111%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 190em) {\n    ul.screenshots li {\n      width: 11.11111%;\n      padding-bottom: 10%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 210em) {\n    ul.screenshots li {\n      width: 10%;\n      padding-bottom: 9.09091%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 230em) {\n    ul.screenshots li {\n      width: 9.09091%;\n      padding-bottom: 8.33333%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 250em) {\n    ul.screenshots li {\n      width: 8.33333%;\n      padding-bottom: 7.69231%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 270em) {\n    ul.screenshots li {\n      width: 7.69231%;\n      padding-bottom: 7.14286%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 290em) {\n    ul.screenshots li {\n      width: 7.14286%;\n      padding-bottom: 6.66667%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 310em) {\n    ul.screenshots li {\n      width: 6.66667%;\n      padding-bottom: 6.25%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 330em) {\n    ul.screenshots li {\n      width: 6.25%;\n      padding-bottom: 5.88235%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 350em) {\n    ul.screenshots li {\n      width: 5.88235%;\n      padding-bottom: 5.55556%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 370em) {\n    ul.screenshots li {\n      width: 5.55556%;\n      padding-bottom: 5.26316%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 390em) {\n    ul.screenshots li {\n      width: 5.26316%;\n      padding-bottom: 5%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 410em) {\n    ul.screenshots li {\n      width: 5%;\n      padding-bottom: 4.7619%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 430em) {\n    ul.screenshots li {\n      width: 4.7619%;\n      padding-bottom: 4.54545%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(41) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(42) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 450em) {\n    ul.screenshots li {\n      width: 4.54545%;\n      padding-bottom: 4.34783%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(41) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(42) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(43) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(44) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 470em) {\n    ul.screenshots li {\n      width: 4.34783%;\n      padding-bottom: 4.16667%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(41) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(42) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(43) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(44) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(45) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(46) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 490em) {\n    ul.screenshots li {\n      width: 4.16667%;\n      padding-bottom: 4%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(41) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(42) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(43) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(44) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(45) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(46) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(47) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(48) {\n      display: inherit;\n      display: initial; } }\n  @media only screen and (min-width: 510em) {\n    ul.screenshots li {\n      width: 4%;\n      padding-bottom: 3.84615%; }\n    ul.screenshots li:nth-of-type(1) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(2) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(3) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(4) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(5) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(6) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(7) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(8) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(9) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(10) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(11) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(12) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(13) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(14) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(15) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(16) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(17) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(18) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(19) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(20) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(21) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(22) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(23) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(24) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(25) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(26) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(27) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(28) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(29) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(30) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(31) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(32) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(33) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(34) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(35) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(36) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(37) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(38) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(39) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(40) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(41) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(42) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(43) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(44) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(45) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(46) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(47) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(48) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(49) {\n      display: inherit;\n      display: initial; }\n    ul.screenshots li:nth-of-type(50) {\n      display: inherit;\n      display: initial; } }\n"},256:function(e,t){e.exports="div.title-info {\n  padding: 15px;\n  overflow: hidden; }\n\nimg.boxart {\n  float: left;\n  width: 250px;\n  padding: 15px; }\n\nsection ul {\n  list-style-type: none; }\n\nul.title-info li {\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  overflow: hidden; }\n\nsection h1 {\n  font-size: 2em;\n  padding-bottom: 15px; }\n  section h1 div.title, section h1 div.developer-publisher {\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden; }\n  section h1 div.title {\n    padding-bottom: 0; }\n  section h1 div.developer-publisher {\n    font-size: 1rem;\n    font-weight: normal;\n    padding-top: 0;\n    padding-bottom: 10px; }\n\nimg.banner {\n  position: relative;\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 15px; }\n"},257:function(e,t){e.exports="img.center {\n  display: block;\n  margin: auto; }\n\ninput, button {\n  height: 25px; }\n\nbutton {\n  width: 100%;\n  margin-top: 25px; }\n\nlabel {\n  display: block;\n  padding: auto;\n  float: left;\n  min-width: 5.5rem;\n  height: 25px; }\n\nsection {\n  padding: 15px; }\n\n.header {\n  background-color: white;\n  padding: 15px;\n  margin: -40px;\n  margin-bottom: 30px; }\n\n.status {\n  margin-top: 10px;\n  height: 40px;\n  text-align: center; }\n\n.status div {\n  padding: 10px; }\n\n.error {\n  background-color: #cc9922; }\n\ndiv.wide {\n  overflow: hidden;\n  min-width: 10rem; }\n  div.wide * {\n    width: 100%; }\n"},258:function(e,t){e.exports=""},259:function(e,t){e.exports="img.center {\n  display: block;\n  margin: auto; }\n\ninput, button {\n  height: 25px; }\n\nbutton {\n  width: 100%; }\n\nlabel {\n  display: block;\n  padding: auto;\n  float: left;\n  min-width: 5.5rem;\n  height: 25px; }\n\n.header {\n  background-color: white;\n  padding: 15px;\n  margin: -10px;\n  margin-bottom: 30px; }\n\n.status {\n  margin-top: 10px;\n  height: 40px;\n  text-align: center; }\n\n.status div {\n  padding: 10px; }\n\n.error {\n  background-color: #bc2929; }\n\ndiv.wide {\n  overflow: hidden;\n  min-width: 10rem; }\n  div.wide * {\n    width: 100%; }\n\n@media only screen and (min-width: 37.5em) {\n  .header {\n    margin: -40px;\n    margin-bottom: 30px; } }\n\n@media only screen and (min-width: 56.25em) {\n  form {\n    display: -ms-flexbox;\n    display: flex; }\n  .button {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 1;\n        flex: 1;\n    height: auto; }\n  button {\n    -ms-flex-item-align: end;\n        align-self: flex-end; } }\n"},260:function(e,t){e.exports="nav {\n  background-color: #fff; }\n\na {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  width: 25%;\n  min-width: 90px;\n  font-size: 1.3em;\n  float: left;\n  text-align: center; }\n\na.active {\n  background-color: #5596b6;\n  color: white; }\n\na:hover {\n  background-color: #33b5e8;\n  color: white; }\n\n@media only screen and (min-width: 37.5em) {\n  a {\n    width: 25%; } }\n\n@media only screen and (min-width: 1280px) {\n  a {\n    width: 12.5%; } }\n\n/*\r\nnav {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  // padding: 0 15px 15px 15px;\r\n}\r\n\r\na {\r\n  flex-grow: 1;\r\n  flex-basis: 115px;\r\n  //padding: 15px 15px 0 0;\r\n  // margin-bottom: 15px;\r\n\r\n  // width: 100%; // needed for ellipsis!\r\n  // min-height: 200px;\r\n}\r\n*/\n"},261:function(e,t){e.exports="h2 {\n  margin-bottom: 10px; }\n\nsection {\n  padding: 15px; }\n\n.row.header {\n  font-weight: bold;\n  margin: 30px 0 10px 0; }\n\n.row.delete, .row.delete *, .row.data, .row.data * {\n  padding: 2px; }\n\n.row.delete {\n  margin-top: 10px; }\n\n.row.data, .row.data * {\n  cursor: pointer; }\n\n.row.data.selected {\n  background-color: #5596b6; }\n\n.row.data:hover, .row.data *:hover {\n  background-color: #33b5e8; }\n\n.field {\n  width: 25%;\n  float: left;\n  color: #aaaaaa; }\n\n.field.wide {\n  width: 100%;\n  color: inherit; }\n\ninput[type=checkbox] {\n  width: 25px;\n  height: 25px;\n  vertical-align: middle; }\n\n@media only screen and (min-width: 37.5em) {\n  input[type=checkbox] {\n    width: auto;\n    width: initial;\n    height: auto;\n    height: initial; } }\n\n@media only screen and (min-width: 56.25em) {\n  .field {\n    width: 15%;\n    color: inherit; }\n  .field.wide {\n    width: 40%;\n    color: inherit; } }\n\nul {\n  list-style-type: none; }\n\n.status {\n  margin-top: 10px;\n  height: 40px;\n  text-align: center; }\n\n.status div {\n  padding: 10px; }\n\n.error {\n  background-color: #cc9922; }\n\nbutton {\n  margin-left: 30px;\n  min-width: 100px; }\n\nbutton.capture {\n  float: right; }\n\n.row.centered {\n  text-align: center; }\n\n.notes {\n  width: auto;\n  height: auto;\n  border: 1px border green;\n  position: relative;\n  display: inline-block;\n  margin: auto auto; }\n  .notes img {\n    width: 100%;\n    display: block; }\n\n.note {\n  position: absolute;\n  border: 1px dotted #33b5e8;\n  cursor: pointer;\n  background-color: rgba(68, 68, 68, 0.65); }\n  .note .text {\n    visibility: hidden;\n    overflow: hidden;\n    width: auto;\n    background-color: #444444;\n    padding: 5px;\n    position: absolute;\n    z-index: 1;\n    top: 95%;\n    left: 95%;\n    max-width: 50vw;\n    overflow: hidden; }\n    .note .text .date {\n      white-space: nowrap;\n      font-size: 0.8em; }\n    .note .text a {\n      word-wrap: break-word; }\n    .note .text div, .note .text a {\n      width: auto;\n      text-align: left; }\n  .note .text.left {\n    right: 95%;\n    left: auto;\n    left: unset; }\n  .note .text.inside {\n    left: 5%; }\n  .note .text.top {\n    bottom: 95%;\n    top: auto;\n    top: unset; }\n\n.note:hover {\n  background-color: rgba(68, 68, 68, 0.65);\n  border: 1px solid #33b5e8; }\n  .note:hover .text {\n    visibility: visible; }\n"},262:function(e,t){e.exports="/*.main {\n  \n  background-color: rgba(40, 41, 45, 0.95);\n  \n  width: 100%;\n  margin: auto auto;\n\n  padding: 40px;\n  min-height: 400px;\n\n}\n*/\n.icon {\n  float: left;\n  background-repeat: no-repeat; }\n\n.icon img {\n  opacity: 0;\n  background-color: rgba(40, 41, 45, 0.8); }\n\n.icon.secret img {\n  opacity: 1; }\n\n.profile, .achievement {\n  /*    .row {\n        // font-size: 1rem;\n        // font-weight: normal;\n    } */ }\n  .profile .icon, .achievement .icon {\n    border-radius: 3px; }\n  .profile img.icon, .achievement img.icon {\n    float: left;\n    vertical-align: middle;\n    width: 64px;\n    height: 64px;\n    margin-right: 20px; }\n  .profile h2, .profile .row, .achievement h2, .achievement .row {\n    display: block;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden; }\n  .profile h2, .achievement h2 {\n    text-shadow: 0px 1px 6px rgba(40, 41, 45, 0.5) !important;\n    margin-right: 10px;\n    padding-bottom: 5px; }\n\n.info {\n  float: right;\n  margin-left: 5px; }\n  .info img {\n    height: 18px;\n    width: 18px; }\n\n.description {\n  margin-bottom: 8px; }\n\n/* .hidden {\n    // border: 1px solid red;\n} */\n.profiles, .achievements {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n  padding: 0 15px 15px 15px; }\n\n.profile, .achievement {\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  -ms-flex-preferred-size: 30em;\n      flex-basis: 30em;\n  padding: 15px 15px 0 0;\n  margin-bottom: 15px;\n  width: 100%; }\n\n.index-0 {\n  border: 2px solid #bc2929; }\n\n.index-1 {\n  border: 2px solid #cc9922; }\n\n.index-2 {\n  border: 2px solid #33e5a8; }\n\n.index-3 {\n  border: 2px solid #33b5e8; }\n\n.index-0.locked {\n  border: 2px solid #8b3a3a; }\n\n.index-1.locked {\n  border: 2px solid #b39444; }\n\n.index-2.locked {\n  border: 2px solid #55b696; }\n\n.index-3.locked {\n  border: 2px solid #5596b6; }\n\nlabel {\n  width: 50px;\n  float: left;\n  font-weight: 600; }\n\n.field {\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  overflow: hidden; }\n\nh2 {\n  margin-bottom: 5px; }\n\nimg.small {\n  width: 32px;\n  height: 32px; }\n\nimg.small.locked {\n  opacity: 0.4; }\n\n.aquired {\n  float: right;\n  margin-left: 5px; }\n  .aquired ul {\n    list-style-type: none; }\n  .aquired li {\n    float: left; }\n\ndiv.show * {\n  float: right; }\n\ndiv.show label {\n  width: auto;\n  margin-right: 10px; }\n\nimg.mini {\n  width: 12px;\n  height: auto; }\n"},263:function(e,t){e.exports='<my-live-background></my-live-background>\n<header class="row">\n    <ng-container *ngIf="router.url != \'/\'">\n        <div class="m-1-col l-2-col"></div>\n        <h1 class="m-10-col l-8-col">\n            <my-live-info info="icon"></my-live-info>\n            <my-live-info class="title" info="title.reduced"></my-live-info>\n            <my-live-info class="developer-publisher" info="developer-publisher"></my-live-info>\n        </h1>\n        <div class="m-1-col l-2-col"></div>\n    </ng-container>\n</header>\n\n<div class="row">\n    <div class="m-1-col l-2-col"></div>\n    <main class="m-10-col l-8-col box shadow" [@collapsibleAnimation]="getRouterOutletState(o)">\n        \x3c!-- Images (and assets) are parsed and loaded from within the public directory --\x3e\n        \x3c!-- img src="/img/angular.png" --\x3e\n\n        \x3c!-- <my-menu [info]="router.url" class="s-hide m-show l-show" *ngIf="router.url != \'/login\' && router.url != \'/\' && auth.isLoggedIn()"></my-menu> --\x3e\n        <my-menu [info]="router.url" class="s-hide m-show l-show" *ngIf="router.url != \'/login\' && auth.isLoggedIn()"></my-menu>\n        <router-outlet #o="outlet"></router-outlet>\n        \x3c!-- <my-menu [info]="router.url" class="s-hide m-show l-show" *ngIf="router.url != \'/login\' && router.url == \'/\' && auth.isLoggedIn()"></my-menu> --\x3e\n        \n    </main>\n    <div class="m-1-col l-2-col"></div>\n</div>\n<footer class="row">\n    &copy; <a [href]="url">Phoenix</a>\n</footer>\n<my-menu [info]="router.url" class="fixed row s-show m-hide l-hide" *ngIf="router.url != \'/login\' && auth.isLoggedIn()"></my-menu>'},264:function(e,t){e.exports='<div class="main">\r\n    <div class="items">\r\n        <section *ngIf="memory" [class.invisible]="loading">\r\n            <h2>Memory</h2>\r\n            <div class="row">\r\n                <div class="key used">Used</div>\r\n                <div class="key free">Free</div>\r\n                \x3c!-- <div class="key total">Total: {{ memory.total | myReadableSize }}</div> --\x3e\r\n            </div>\r\n\r\n            <div class="bar memory used" [style.background-size]="(memory.used / memory.total * 100) + \'% 100%\'">\r\n                <div class="caption left">{{ memory.used | myReadableSize }}</div>\r\n                <div class="caption right">{{ memory.free | myReadableSize }}</div>\r\n            </div>\r\n            <div class="row">\r\n                <div class="scale min">0 B</div>\r\n                <div class="scale max">{{ memory.total | myReadableSize }}</div>\r\n            </div>\r\n        </section>\r\n        \r\n        <section *ngIf="temperature" [class.invisible]="loading">\r\n            <h2>Temperatures</h2>\r\n            <div class="row">\r\n                <div class="key cpu">CPU</div>\r\n                <div class="key gpu">GPU</div>\r\n                <div class="key memory">Mem</div>\r\n                <div class="key case">Case</div>\r\n            </div>\r\n\r\n            <div class="bar temp cpu" [style.background-size]="(temperature.cpu | myTemperaturePercentage: temperature.celsius : maxtemp) + \'% 100%\'">\r\n                <div class="caption">{{ temperature.cpu }} {{ temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n            </div>\r\n            \r\n            <div class="bar temp gpu" [style.background-size]="(temperature.gpu | myTemperaturePercentage: temperature.celsius : maxtemp) + \'% 100%\'">\r\n                <div class="caption">{{ temperature.gpu }} {{ temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n            </div>\r\n            \r\n            <div class="bar temp memory" [style.background-size]="(temperature.memory | myTemperaturePercentage: temperature.celsius : maxtemp) + \'% 100%\'">\r\n                <div class="caption">{{ temperature.memory }} {{ temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n            </div>\r\n            \r\n            <div class="bar temp case" [style.background-size]="(temperature.case | myTemperaturePercentage: temperature.celsius : maxtemp) + \'% 100%\'">\r\n                <div class="caption">{{ temperature.case }} {{ temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n            </div>\r\n            <div class="row">\r\n                <div class="scale min">{{ temperature.celsius ? \'0&#x2103;\' : ((0 | myTemperatureConverter:\'F\') | number:\'1.0-2\') + \'&#x2109;\' }}</div>\r\n                <div class="scale max">{{ temperature.celsius ? ((maxtemp ? maxtemp  : 100)  | number:\'1.0-2\' ) + \'&#x2103;\' : (((maxtemp ? maxtemp : 100) | myTemperatureConverter:\'F\') | number:\'1.0-2\') + \'&#x2109;\' }}</div>\r\n            </div>\r\n        </section>\r\n\r\n        <section *ngIf="systemLink" [class.invisible]="loading">\r\n            <h2>System LiNK</h2>\r\n            <div class="row"><label>Status:</label><div class="field">{{ systemLink.enabled ? \'Enabled\' : \'Disabled\' }}</div></div>\r\n            <div class="row"><label>Xbox IP:</label><div class="field">{{ systemLink.xboxip }}</div></div>\r\n            <div class="row"><label>Xbox MAC:</label><div class="field">{{ systemLink.xboxmac }}</div></div>\r\n            <div class="row"><label>Gateway IP:</label><div class="field">{{ systemLink.gatewayip }}</div></div>\r\n            <div class="row"><label>Gateway MAC:</label><div class="field">{{ systemLink.gatewaymac }}</div></div>\r\n            <div class="row"><label>Broadcast port:</label><div class="field">{{ systemLink.broadcastport }}</div></div>\r\n            <div class="row"><label>Data port:</label><div class="field">{{ systemLink.dataport }}</div></div>\r\n            <div class="row"><label>Unity username:</label><div class="field">{{ systemLink.username }}</div></div>\r\n            <div class="row"><label>Unity api key:</label><div class="field wide">{{ systemLink.apikey }}</div></div>\r\n        </section>\r\n        \r\n        <section *ngIf="systemLinkBandwidth" [class.invisible]="loading">\r\n            <h2>System LiNK Bandwidth</h2>\r\n            <div class="row">\r\n                <div class="container big">\r\n                    <div class="key big downstream">Upstream</div>\r\n                    <div class="key big">{{ systemLinkBandwidth.bytes.upstream | myReadableSize }}</div>\r\n                </div>\r\n                <div class="container big">\r\n                    <div class="key big upstream">Downstream</div>\r\n                    <div class="key big">{{ systemLinkBandwidth.bytes.downstream | myReadableSize }}</div>\r\n                </div>\r\n            </div>\r\n\r\n            <div class="bar bandwidth upstream" [style.background-size]="(systemLinkBandwidth.rate.upstream / maxrate.upstream * 100) + \'% 100%\'">\r\n                <div class="caption">{{ systemLinkBandwidth.rate.upstream | myReadableSize }}/s</div>\r\n            </div>\r\n            <div class="row">\r\n                <div class="scale min">0 B</div>\r\n                <div class="scale max">{{ maxrate.upstream | myReadableSize }}/s (max)</div>\r\n            </div>\r\n            <div class="bar bandwidth downstream" [style.background-size]="(systemLinkBandwidth.rate.downstream / maxrate.downstream * 100) + \'% 100%\'">\r\n                <div class="caption">{{ systemLinkBandwidth.rate.downstream | myReadableSize }}/s</div>\r\n            </div>\r\n            <div class="row">\r\n                <div class="scale min">0 B</div>\r\n                <div class="scale max">{{ maxrate.downstream  | myReadableSize }}/s (max)</div>\r\n            </div>\r\n        </section>\r\n\r\n        <section *ngIf="system" [class.invisible]="loading">\r\n            <h2>Device</h2>\r\n            <div class="row"><label>Serial:</label><div class="field">{{ system.serial }}</div></div>        \r\n            <div class="row"><label>Console Id:</label><div class="field">{{ system.consoleid }}</div></div>        \r\n            <div class="row"><label>Dashboard:</label><div class="field">{{ system.version.major }}.{{ system.version.minor }}.{{ system.version.build }}.{{ system.version.qfe }}</div></div>        \r\n            <div class="row"><label>Type:</label><div class="field">{{ system.console.motherboard }} {{ system.console.type }}</div></div>        \r\n            <div class="row"><label>CPU Key:</label><div class="field wide">{{ system.cpukey }}</div></div>        \r\n            <div class="row"><label>DVD Key:</label><div class="field wide">{{ system.dvdkey }}</div></div>\r\n        </section>\r\n\r\n        <section *ngIf="smc" [class.invisible]="loading">\r\n            <h2>SMC</h2>\r\n            <div class="row"><label>Version:</label><div class="field">{{ smc.smcversion }}</div></div>        \r\n            <div class="row"><label>AV Pack:</label><div class="field">{{ smc.avpack | mySMCReadableInfo: \'AVPack\' }}</div></div>        \r\n            <div class="row"><label>Tray State:</label><div class="field">{{ smc.traystate | mySMCReadableInfo: \'TrayState\' }}</div></div>        \r\n            <div class="row"><label>DVD Media Type:</label><div class="field">{{ smc.dvdmediatype | mySMCReadableInfo: \'DVDMediaType\' }}</div></div>        \r\n            <div class="row"><label>Tilt State:</label><div class="field">{{ smc.tiltstate | mySMCReadableInfo: \'TiltState\' }}</div></div>        \r\n            <div class="row"><label>Fan control:</label></div>\r\n            <div class="row">\r\n                <label>CPU</label>\r\n                <div class="field wide">\r\n                    <div class="temperature">Target: {{ smc.temperature.target.cpu }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                    <div class="temperature">Shutdown: {{ smc.temperature.max.cpu }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                </div>\r\n            </div>\r\n            <div class="row"><label>GPU</label>\r\n                <div class="field wide">\r\n                    <div class="temperature">Target: {{ smc.temperature.target.gpu }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                    <div class="temperature">Shutdown: {{ smc.temperature.max.gpu }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                </div>\r\n            </div>\r\n            <div class="row"><label>Memory</label>\r\n                <div class="field wide">\r\n                    <div class="temperature">Target: {{ smc.temperature.target.memory }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                    <div class="temperature">Shutdown: {{ smc.temperature.max.memory }}{{ smc.temperature.celsius ? \'&#x2103;\' : \'&#x2109;\' }}</div>\r\n                </div>\r\n            </div>\r\n        </section>\r\n\r\n        <section *ngIf="plugin" [class.invisible]="loading">\r\n            <h2>Plugin</h2>\r\n            <div class="row">\r\n                <label>Version:</label>\r\n                <div class="field">\r\n                    {{ plugin.version.number.major }}.{{ plugin.version.number.minor }}.{{ plugin.version.number.build }} ({{ pluginVersionTypes[plugin.version.number.type] }})\r\n                </div>\r\n            </div>        \r\n            <div class="row"><label>WebUI api:</label><div class="field">{{ plugin.version.api }}</div></div>      \r\n            <div class="row"><label>Root path:</label><div class="field wide">{{ plugin.path.root | myReadablePath }}</div></div>        \r\n            <div class="row"><label>User data:</label><div class="field wide">{{ plugin.path.user | myReadablePath }}</div></div>        \r\n            <div class="row"><label>Web root:</label><div class="field wide">{{ plugin.path.web | myReadablePath }}</div></div>        \r\n            <div class="row"><label>Launcher:</label><div class="field wide">{{ plugin.path.launcher | myReadablePath }}</div></div>\r\n            \r\n            <div class="row"><label>Features:</label></div>\r\n            <ul>\r\n                <li *ngFor="let f of plugin.features | myObjectKeys" class="feature">\r\n                    <span [class.enabled]="plugin.features[f]">{{ plugin.features[f] ? \'&#10003;\' : \'&#10007;\' }}</span>\r\n                    {{ f | myPluginReadableFeature }}\r\n                </li>\r\n            </ul>\r\n            \r\n        </section>\r\n\r\n        <section *ngIf="multiDisc" [class.invisible]="loading">\r\n            <h2>MultiDisk</h2>\r\n            <div class="row"><label>TitleId:</label><div class="field">{{ multiDisc.titleid }}</div></div>\r\n            <div class="row"><label>Disc:</label><div class="field">{{ multiDisc.disc.current }} of {{ multiDisc.disc.total }}</div></div>\r\n            <div class="row"><label>Discs:</label></div>\r\n                \r\n            <ol>\r\n                <li class="row" *ngFor="let entry of multiDisc.entries | myMultiDiscEntryLimit: multiDisc.disc.total; let d = index">\r\n                    <label>{{ d + 1 }})</label>\r\n                    <div class="field">\r\n                        {{ entry.path === \'\' ? \'\' : \'[\' + [ \'extracted\', \'container\' ][entry.container] + \']\' }} {{ entry.path === \'\' ? \'missing\' : (entry.path | myReadablePath) }}\r\n                    </div>\r\n                </li>\r\n            </ol>\r\n            \r\n            \r\n        </section>\r\n\r\n        <section *ngIf="threads" [class.invisible]="loading">\r\n            <h2>Active Threads<button class="threadsstate" (click)="toggleThreadsState()" [disabled]="currentThreadsState === null">{{ currentThreadsState ? \'Resume\' : \'Pause\' }}</button></h2>\r\n            <table>\r\n                <thead><tr><th>Id</th><th>Type</th><th>Flags</th><th>Priority</th><th>Address</th></tr></thead>\r\n                <tbody>\r\n                    <tr *ngFor="let thread of threads">\r\n                        <td>{{ thread.id }}</td><td class="center">{{ thread.type }}</td><td>{{ thread.flags }}</td><td class="center">{{ thread.priority }}</td><td>{{ thread.address }}</td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>            \r\n        </section>\r\n    </div>\r\n    <div *ngIf="dashlaunch" class="dashlaunch" [class.invisible]="loading">\r\n        <h2>DashLaunch Settings</h2>\r\n        <div class="row"><label>Version:</label><div class="field">{{ dashlaunch.version.number.major }}.{{ dashlaunch.version.number.minor }} ({{ dashlaunch.version.number.build }})</div></div>\r\n        <div class="row"><label>Kernel:</label><div class="field">{{ dashlaunch.version.kernel }}</div></div>\r\n        \r\n            <section *ngFor="let category of dashlaunchCategories">\r\n                <h3>{{ category | myDashLaunchReadableCategory }}</h3>\r\n                <ng-container *ngFor="let option of dashlaunch.options | myDashLaunchCategoryFilter:category">\r\n                    <div class="row">\r\n                        <label>{{ option.name }}</label>\r\n                        <label class="field">{{ option.value | myDashLaunchReadableValue }}</label>\r\n                        <div class="field description">{{ option.name | myDashLaunchReadableName }}</div>\r\n                    </div>\r\n                </ng-container>\r\n            </section>\r\n           \r\n    </div>\r\n    <div *ngIf="loading" class="overlay">\r\n        <img class="loader" src="/img/loader.svg">\r\n    </div>\r\n</div>\r\n'},265:function(e,t){e.exports='<div class="main">\r\n    <section *ngIf="liveinfo" class="row" [class.invisible]="loading">\r\n     \r\n      <div class="row">\r\n        <img *ngIf="liveinfo" class="banner s-show m-show l-hide" [myAuthSrc]="liveinfo.images.banner" [myAuthUniqueId]="liveinfo.titleid" />\r\n        <img *ngIf="liveinfo && !errBA" [myAuthSrc]="liveinfo.images.boxart.large" [myAuthUniqueId]="liveinfo.titleid" (error)="errBA = true" class="boxart large l-show s-hide m-hide">\r\n        <img *ngIf="liveinfo && errBA && !errFB" [myAuthSrc]="liveinfo.imagesunity().boxart.large" [myAuthUniqueId]="liveinfo.titleid" (error)="errFB = true" class="boxart large fallback l-show s-hide m-hide">\r\n        <div class="description" [innerHTML]="liveinfo.description">\x3c!-- use [innerHTML] to allow html in the description {{ liveinfo.description }} --\x3e</div>\r\n      </div>\r\n      <div class="row">\r\n        <div class="screenshots l-12-col" *ngIf="liveinfo?.images.screenshots.length > 0">\r\n            <ul class="screenshots">\r\n              <li *ngFor="let screenshot of liveinfo?.images.screenshots">\r\n                  <div class="screenshot" [myAuthBackground]="screenshot" [myAuthUniqueId]="liveinfo.titleid"></div>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n      </div>\r\n      </section>\r\n  \r\n    <div *ngIf="loading" class="overlay">\r\n      <img class="loader" src="/img/loader.svg">\r\n    </div>\r\n  \r\n  </div>'},266:function(e,t){e.exports='<div class="main">\n  <section *ngIf="liveinfo || titleinfo" class="row" [class.invisible]="loading">\n    \n    <div class="row">\n      <img *ngIf="liveinfo" class="banner s-show m-show l-hide" [myAuthSrc]="liveinfo.images.banner" [myAuthUniqueId]="liveinfo.titleid" />\n      <img *ngIf="liveinfo && !errBA" [myAuthSrc]="liveinfo.images.boxart.large" [myAuthUniqueId]="liveinfo.titleid" (error)="errBA = true" class="boxart large l-show s-hide m-hide">\n      <img *ngIf="liveinfo && errBA && !errFB" [myAuthSrc]="liveinfo.imagesunity().boxart.large" [myAuthUniqueId]="liveinfo.titleid" (error)="errFB = true" class="boxart large fallback l-show s-hide m-hide">\n      <div class="title-info">\n        <h1>\n          <div class="title">{{ liveinfo?.reducedtitle }}</div>\n          <div class="developer-publisher">{{ liveinfo?.developer }}, {{ liveinfo?.publisher }}</div>\n        </h1>\n        <ul class="title-info">\n          <li><b>Rating:</b> {{ liveinfo?.ratingaggregate }} / {{ liveinfo?.numberofratings }}</li>\n          <li><b>Path:</b> {{ titleinfo?.path | myReadablePath }}</li>\n          <li><b>TitleId:</b> {{ titleinfo?.titleid }}</li>\n          <li><b>MediaId:</b> {{ titleinfo?.mediaid }}</li>\n          <li><b>Disc:</b> {{ titleinfo?.disc.current }} of {{ titleinfo?.disc.count }}</li>\n          <li><b>Game version:</b> {{ titleinfo?.version.current }} / {{ titleinfo?.version.base }}</li>\n          <li><b>TU version:</b> {{ titleinfo?.tuver }}</li>\n          <li><b>Resolution:</b> {{ titleinfo?.resolution.width }} x {{ titleinfo?.resolution.height }}</li>\n        </ul>\n      </div>\n    </div>\n  </section>\n\n  <div *ngIf="loading" class="overlay">\n    <img class="loader" src="/img/loader.svg">\n  </div>\n\n</div>\n'},267:function(e,t){e.exports='<div class="main">\r\n    <section class="row" [class.invisible]="loading">\r\n        \r\n        <form class="row" name="form" (ngSubmit)="f.form.valid && launch()" #f="ngForm" *ngIf="plugin" novalidate>\r\n            <div>Are you sure you want to return to launcher? This will end your current session.</div>\r\n            <div>Launcher path: {{ plugin.path.launcher | myReadablePath }}</div>\r\n            <div>\r\n                <button [disabled]=\'!plugin\'>Back to launcher</button>\r\n            </div>\r\n        </form>\r\n        <div class="status" *ngIf="!plugin">\r\n            <div class="error">No launcher data available</div>\r\n        </div>\r\n    </section>\r\n\r\n    <div *ngIf="loading" class="overlay">\r\n        <img class="loader" src="/img/loader.svg">\r\n    </div>\r\n    \r\n</div>\r\n'},268:function(e,t){e.exports='<ng-container *ngIf="liveinfo" [ngSwitch]="param">\r\n    <ng-container *ngSwitchCase="\'boxart\'">\r\n        <img *ngIf="!errBA" [myAuthSrc]="liveinfo.images.boxart[option]" [myAuthUniqueId]="liveinfo.titleid" (error)="errBA = true" class="{{ param }} {{ option }}">\r\n        <img *ngIf="errBA && !errFB" [myAuthSrc]="liveinfo.imagesunity().boxart[option]" [myAuthUniqueId]="liveinfo.titleid" (error)="errFB = true" class="{{ param }} {{ option }}">\r\n    </ng-container>\r\n    <img *ngSwitchCase="\'icon\'" class="{{ param }}" [myAuthSrc]="liveinfo.images.icon" [myAuthUniqueId]="liveinfo.titleid" />\r\n\r\n    <img *ngSwitchCase="\'banner\'" class="{{ param }}" [myAuthSrc]="liveinfo.images.banner" [myAuthUniqueId]="liveinfo.titleid" />\r\n\r\n    <ng-container *ngSwitchCase="\'title\'">{{ liveinfo[option + \'title\'] }}</ng-container>\r\n\r\n    <ng-container *ngSwitchCase="\'developer-publisher\'">{{ liveinfo[\'developer\'] + \', \' + liveinfo[\'publisher\'] }}</ng-container>\r\n\r\n    <ng-container *ngSwitchCase="\'description\'">{{ liveinfo[(option == \'full\' ? \'\' : option) + \'description\'] }}</ng-container>\r\n\r\n    <ul *ngSwitchCase="\'screenshots\'" class="screenshots" [class.unavailable]="liveinfo.images.screenshots.length === 0">\r\n        <ng-container *ngIf="liveinfo.images.screenshots.length > 0">\r\n            <li *ngFor="let screenshot of liveinfo.images.screenshots">\r\n                <div class="screenshot" [myAuthBackground]="screenshot" [myAuthUniqueId]="liveinfo.titleid"></div>\r\n            </li>\r\n        </ng-container>\r\n        <ng-container *ngIf="liveinfo.images.screenshots.length === 0">\r\n            <li>\r\n                <div class="screenshot unavailable"></div>\r\n            </li>\r\n        </ng-container>\r\n    </ul>\r\n    \r\n    <ng-container *ngSwitchCase="\'rating\'">{{ option == \'score\' ? liveinfo.ratingaggregate : liveinfo.numberofratings }}</ng-container>\r\n    \r\n    <ng-container *ngSwitchCase="\'\'">{{ liveinfo[\'fulltitle\'] }}</ng-container>\r\n\r\n    <ng-container *ngSwitchDefault>{{ option ? liveinfo[param][option] : liveinfo[param] }}</ng-container>\r\n</ng-container>\r\n'},269:function(e,t){e.exports='<div class="main">\r\n    <section class="row header" [class.invisible]="loading">\r\n        <img class="center" src="/img/logo.nova.png" />\r\n    </section>\r\n    <section class="row" [class.invisible]="loading">\r\n        \r\n        <form class="row" name="form" (ngSubmit)="f.form.valid && login()" #f="ngForm" novalidate>\r\n            \r\n                <div class="table l-5-col m-6-col">\r\n                    <label for="username">Username:</label>\r\n                    <div class="wide"><input type="text" autocorrect="off" autocapitalize="off" name="username" [(ngModel)]="username" required /></div>\r\n                </div>\r\n                <div class="table l-5-col m-6-col">\r\n                    <label for="password">Password:</label>\r\n                    <div class="wide"><input type="password" name="password" [(ngModel)]="password" required /></div>\r\n                </div>\r\n                \r\n                <div class="table button l-2-col m-12-col">\r\n                    <button (click)="error = 0">Login</button>\r\n                </div>\r\n        </form>\r\n        <div class="status s-12-col" [ngSwitch]="error">\r\n            <div class="error" *ngSwitchCase="-2">Logged out</div>\r\n            <div class="error" *ngSwitchCase="-1">Token expired or not available</div>\r\n            <div *ngSwitchCase="0"></div>\r\n            <div class="error" *ngSwitchCase="401">Username or password incorrect</div>\r\n            <div class="error" *ngSwitchDefault>Unknown error</div>\r\n        </div>\r\n    </section>\r\n\r\n    <div *ngIf="loading" class="overlay">\r\n        <img class="loader" src="/img/loader.svg">\r\n    </div>\r\n    \r\n</div>\r\n'},270:function(e,t){e.exports='<nav class="row">\r\n    <a [routerLink]="[\'\']" [class.active]="param === \'/\'">Home</a>\r\n    <a [routerLink]="[\'details\']" [class.active]="param === \'/details\'">Details</a>\r\n    <a [routerLink]="[\'notes\']" [class.active]="param === \'/notes\'">Screens</a>\r\n    <a [routerLink]="[\'users\']" [class.active]="param === \'/users\'">Users</a>\r\n    <a [routerLink]="[\'console\']" [class.active]="param === \'/console\'">Console</a>\r\n    <a [routerLink]="[\'launcher\']" [class.active]="param === \'/launcher\'">Launcher</a>\r\n    \x3c!-- a [routerLink]="[\'login\']">Login</a --\x3e\r\n    <a *ngIf="loginRequired" [routerLink]="[\'login\']" [class.active]="param === \'/login\'" [queryParams]="{ logout: true }">Logout</a>\r\n\x3c!--\r\n    <ul style="display: none;">\r\n        <li>Title\r\n            <ul>\r\n                <li>Info</li>\r\n                <li>Media</li>\r\n            </ul>\r\n        </li>\r\n        <li>Notes\r\n            <ul>\r\n                <li>Capture Screen</li>\r\n                <li>Screen Captures</li>\r\n            </ul>\r\n        </li>\r\n        <li>Player\r\n            <ul>\r\n                <li>Profiles</li>\r\n                <li>Achievements</li>\r\n            </ul>\r\n        </li>\r\n        <li>System\r\n            <ul>\r\n                <li>Memory</li>\r\n                <li>Temperatures</li>\r\n                <li>SystemLink</li>\r\n                <li>Bandwidth</li>\r\n                <li>Console</li>\r\n                <li>DashLaunch</li>\r\n                <li>Threads</li>\r\n            </ul>\r\n        </li>\r\n    </ul>\r\n--\x3e\r\n</nav>'},271:function(e,t){e.exports='<div class="main">\r\n    <section *ngIf="list" class="row" [class.invisible]="loading">\r\n        <h2 [myScrollIntoView]="selected && !loading">Screen Captures<button class="capture" (click)="takeScreencapture()">Take New</button></h2>\r\n        <div *ngIf="selected" class="row centered" [class.invisible]="loading">\r\n            <div class="notes">\r\n                <ng-container *ngIf="userdata">\r\n                    <div class="note"\r\n                            *ngFor="let note of userdata.notes[selected]"\r\n                            [style.left.%]="note.LEFT"\r\n                            [style.top.%]="note.TOP"\r\n                            [style.width.%]="note.WIDTH"\r\n                            [style.height.%]="note.HEIGHT">\r\n                        <div class="note text"\r\n                                [class.top]="note.TOP > 50"\r\n                                [class.left]="note.LEFT > 50"\r\n                                [class.inside]="note.LEFT < 50 && note.LEFT + note.WIDTH > 50">\r\n                            <div class="row"><div class="field">{{ note.AUTHOR }}:&nbsp;</div><div class="field">{{ note.NOTE }}</div></div>\r\n                            <div class="row"><a href="{{ note.LINK }}" target="_blank">{{ note.LINK }}</a></div>\r\n                            <div class="row"><div class="field date">{{ (note.DATE.Y + \'/\' + note.DATE.M + \'/\' + note.DATE.D + \' \' + note.DATE.H + \':\' + note.DATE.I) | date: \'EEE yyyy/MM/dd HH:mm\' }}</div></div>\r\n                        </div>\r\n                    </div>\r\n                    \r\n                </ng-container>\r\n                <img [myAuthSrc]="\'image/screencapture?uuid=\' + selected" (load)="loading = false" (error)="loading = false; error = true">\r\n            </div>\r\n            <div class="status" *ngIf="error">\r\n                <div class="error">Unable to retrieve image</div>\r\n            </div>\r\n        </div>\r\n        <ul>\r\n            <li class="row header">\r\n                <div class="field wide">Timestamp</div>\r\n                <div class="field">Resolution</div>\r\n                <div class="field">Size</div>\r\n                <div class="field">Format</div>\r\n                <div class="field">Notes</div>\r\n            </li>\r\n            <li *ngFor="let meta of list; let d = index"\r\n                    class="row data"\r\n                    [class.selected]="selected == meta.filename"\r\n                    (click)="selected = (selected == meta.filename) ? null : meta.filename; loading = (selected !== null); error = false">\r\n                <div class="field wide">\r\n                    <input type="checkbox"\r\n                            (change)="selection.has(meta.filename) ? selection.delete(meta.filename) : selection.add(meta.filename);\r\n                                        all = (all && selection.has(meta.filename)) || (selection.size === list.length)"\r\n                            (click)="$event.stopPropagation()"\r\n                            [checked]="selection.has(meta.filename)" />\r\n                    <label>{{ meta.timestamp | myIsoTimestamp | date: \'EEE yyyy/MM/dd HH:mm:ss\' }}</label>\r\n                </div>\r\n                <div class="field">{{ meta.info.width }}x{{ meta.info.height }}</div>\r\n                <div class="field">{{ meta.filesize | myReadableSize }}</div>\r\n                <div class="field">{{ meta.info.format }}</div>\r\n                <div class="field">{{ userdata?.notes[meta.filename]?.length }}</div>\r\n            </li>\r\n            <li class="row delete">\r\n                <div class="field wide">\r\n                    <input type="checkbox"\r\n                        (change)="all ? all = ! all : all = true; selectAll(all)"\r\n                        [disabled]="list.length === 0"\r\n                        [checked]="all && list.length > 0" />\r\n                    <label>select all</label>\r\n                    <button [disabled]="selection.size == 0" (click)="selected = null; deleteScreencaptures(selection)">Delete</button>\r\n                </div>\r\n            </li>\r\n        </ul>        \r\n    </section>\r\n    \r\n    <div *ngIf="loading" class="overlay">\r\n        <img class="loader" src="/img/loader.svg">\r\n    </div>\r\n\r\n</div>\r\n    '},272:function(e,t){e.exports='<div class="main">\n    <section *ngIf="profiles" class="row" [class.invisible]="loading">\n        <div class="profiles">\n            <div class="profile" *ngFor="let profile of profiles | myProfileFilter:{\'signedin\': 1 }">\n                <img [class]="\'icon index-\' + profile.index" [myAuthSrc]="\'image/profile?uuid=\' + profile.index" [myAuthUniqueId]="profile.xuid">\n                <h2>{{ profile.gamertag }}</h2>\n                <div class="row"><label><img src="img/profile.gamerscore.png"></label><div class="field">{{ profile.gamerscore }}</div></div>\n                <div class="row"><label>Xuid:</label><div class="field">{{ profile.xuid }}</div></div>\n                <div class="row">&nbsp;</div>\n                <div class="row" *ngIf="achievements && aquired"><div class="field">Unlocked {{ profile.aquiredCount }} achievement{{ profile.aquiredCount === 1 ? \'\' : \'s\' }}, scoring <img class="mini" src="img/profile.gamerscore.png"> {{ profile.aquiredScore }} for this game.</div></div>\n            </div>\n        </div>\n    </section>\n    \n    <section *ngIf="achievements && aquired" class="row" [class.invisible]="loading">\n        <div class="row show"><input type="checkbox" (change)="showsecrets = !showsecrets" [checked]="showsecrets"><label>Show secrets</label></div>\n        <div class="row achievements">\n            <div class="achievement" *ngFor="let achievement of achievements">\n                <div class="icon"\n                        [class.hidden]="achievement.hidden && !showsecrets"\n                        [class.secret]="achievement.hidden && !isUnlocked(achievement, true) && !showsecrets"\n                        [myAuthBackground]="\'image/achievement?uuid=\' + achievement.imageid" [myAuthUniqueId]="hashes[achievement.id]">\n                    <img class="icon" src="img/achievement.secret.png">\n                </div>\n\n                <h2>\n                    {{ !achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievement.strings.caption : \'Secret Achievement\' }}\n                    <div class="info l-show m-hide s-hide">\n                        <label>\n                            <img [src]="\'img/achievement.type.\' + (!achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievementTypes[achievement.type] : \'undefined\') + \'.png\'"\n                                title="{{ !achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievementTypes[achievement.type] : \'Secret\' }}">\n                            <img src="img/profile.gamerscore.png">\n                        </label>\n                        {{ !achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievement.cred : \'- -\' }}\n                    </div>\n                </h2>\n                <div class="aquired l-show m-hide s-hide" *ngIf="profiles && achievement.player && achievement.player?.length == 4">\n                    <ul>\n                        <li *ngFor="let profile of profiles | myProfileFilter:{\'signedin\': 1 }">\n                            <img [class]="\'small index-\' + profile.index"\n                                [class.locked]="!achievement.player[profile.index]"\n                                [myAuthSrc]="\'image/profile?uuid=\' + profile.index" [myAuthUniqueId]="profile.xuid">\n                        </li>\n                    </ul>\n                </div>\n                \x3c!--\n                <div *ngIf="isUnlocked(achievement, true)" class="row description">{{ achievement.strings.description }}</div>\n                <div *ngIf="!isUnlocked(achievement, true) && (!achievement.hidden || showsecrets)" class="row description">{{ achievement.strings.unachieved }}</div>\n                <div *ngIf="!isUnlocked(achievement, true) && achievement.hidden && !showsecrets" class="row description">Continue playing to unlock this achievement</div>\n                --\x3e\n                \x3c!-- Some titles don\'t have a proper \'unachieved\' for secret achievements, so use description --\x3e\n                <div *ngIf="isUnlocked(achievement, true) || (achievement.hidden && showsecrets)" class="row description">{{ achievement.strings.description }}</div>\n                <div *ngIf="!isUnlocked(achievement, true) && !achievement.hidden" class="row description">{{ achievement.strings.unachieved }}</div>\n                <div *ngIf="!isUnlocked(achievement, true) && achievement.hidden && !showsecrets" class="row description">Continue playing to unlock this achievement</div>\n                \n\n\n\n                <div class="aquired l-hide m-show s-show" *ngIf="profiles && achievement.player && achievement.player?.length == 4">\n                    <ul>\n                        <li *ngFor="let profile of profiles | myProfileFilter:{\'signedin\': 1 }">\n                            <img [class]="\'small index-\' + profile.index"\n                                [class.locked]="!achievement.player[profile.index]"\n                                [myAuthSrc]="\'image/profile?uuid=\' + profile.index" [myAuthUniqueId]="profile.xuid">\n                        </li>\n                    </ul>\n                </div>\n                <div class="info l-hide m-show s-show">\n                    <label>\n                        <img [src]="\'img/achievement.type.\' + (!achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievementTypes[achievement.type] : \'undefined\') + \'.png\'"\n                            title="{{ !achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievementTypes[achievement.type] : \'Secret\' }}">\n                        <img src="img/profile.gamerscore.png">\n                    </label>\n                    {{ !achievement.hidden || isUnlocked(achievement, true) || showsecrets ? achievement.cred : \'- -\' }}\n                </div>\n\n            </div>\n        </div>\n    </section>\n\n    <div *ngIf="loading" class="overlay">\n        <img class="loader" src="/img/loader.svg">\n    </div>\n\n</div>\n'},39:function(e,t,n){"use strict";function getString(e){return e?e.toString():""}function xmlToLiveInfo(e){return new i({arrayAccessFormPaths:["feed.entry.categories.category","feed.entry.images.image","feed.entry.media.ratingDescriptors.ratingDescriptor","feed.entry.previewInstances.videoPreviewInstance","feed.entry.slideShows.slideShow.image"]}).xml2js(e)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(549),r=function(){function RatingDescriptor(e){e&&(this.ratingdescriptorid=getString(e.ratingdescriptorid),this.ratingdescriptorlevel=getString(e.ratingdescriptorlevel))}return RatingDescriptor.prototype.importXml=function(e){return this.ratingdescriptorid=getString(e.ratingDescriptorId),this.ratingdescriptorlevel=getString(e.ratingDescriptorLevel),this},RatingDescriptor}();t.RatingDescriptor=r;var o=function(){function GameCapabilities(e){e&&(this.offlineplayersmin=getString(e.offlineplayersmin),this.offlineplayersmax=getString(e.offlineplayersmax),this.offlinecoopplayersmin=getString(e.offlinecoopplayersmin),this.offlinecoopplayersmax=getString(e.offlinecoopplayersmax),this.offlinesystemlinkmin=getString(e.offlinesystemlinkmin),this.offlinesystemlinkmax=getString(e.offlinesystemlinkmax),this.offlinemaxhdtvmodeid=getString(e.offlinemaxhdtvmodeid),this.offlinedolbydigital=getString(e.offlinedolbydigital),this.onlinemultiplayermin=getString(e.onlinemultiplayermin),this.onlinemultiplayermax=getString(e.onlinemultiplayermax),this.onlinecoopplayersmin=getString(e.onlinecoopplayersmin),this.onlinecoopplayersmax=getString(e.onlinecoopplayersmax),this.onlinecontentdownload=getString(e.onlinecontentdownload),this.onlineleaderboards=getString(e.onlineleaderboards),this.onlinevoice=getString(e.onlinevoice))}return GameCapabilities.prototype.importXml=function(e){return this.offlineplayersmin=getString(e.offlinePlayersMin),this.offlineplayersmax=getString(e.offlinePlayersMax),this.offlinecoopplayersmin=getString(e.offlineCoopPlayersMin),this.offlinecoopplayersmax=getString(e.offlineCoopPlayersMax),this.offlinesystemlinkmin=getString(e.offlineSystemLinkMin),this.offlinesystemlinkmax=getString(e.offlineSystemLinkMax),this.offlinemaxhdtvmodeid=getString(e.offlineMaxHDTVModeId),this.offlinedolbydigital=getString(e.offlineDolbyDigital),this.onlinemultiplayermin=getString(e.onlineMultiplayerMin),this.onlinemultiplayermax=getString(e.onlineMultiplayerMax),this.onlinecoopplayersmin=getString(e.onlineCoopPlayersMin),this.onlinecoopplayersmax=getString(e.onlineCoopPlayersMax),this.onlinecontentdownload=getString(e.onlineContentDownload),this.onlineleaderboards=getString(e.onlineLeaderboards),this.onlinevoice=getString(e.onlineVoice),this},GameCapabilities}();t.GameCapabilities=o;var a=function(){function Category(e){e&&(this.categoryid=e.categoryid,this.system=e.system,this.name=e.name)}return Category.prototype.importXml=function(e){return this.categoryid=getString(e.categoryId),this.system=getString(e.system),this.name=getString(e.name),this},Category}();t.Category=a;var s=function(){function Video(e){e&&(this.videodefinition=getString(e.videodefinition),this.videoencoding=getString(e.videoencoding),this.audioencoding=getString(e.audioencoding),this.isacquirable=getString(e.isacquirable),this.aspectratio=getString(e.aspectratio),this.resolution=getString(e.resolution),this.url=getString(e.url))}return Video.prototype.importXml=function(e){return this.videodefinition=getString(e.videoDefinition),this.videoencoding=getString(e.videoEncoding),this.audioencoding=getString(e.audioEncoding),this.isacquirable=getString(e.isAcquirable),this.aspectratio=getString(e.aspectRatio),this.resolution=getString(e.resolution),this.url=getString(e.files.file.fileUrl),this},Video}();t.Video=s;var l=function(){function Boxart(e){e&&(this.small=getString(e.small),this.large=getString(e.large))}return Boxart}();t.Boxart=l;var u=function(){function Images(e){this.screenshots=[],e&&(this.boxart=new l(e.boxart),this.icon=getString(e.icon),this.banner=getString(e.banner),this.background=getString(e.background),this.screenshots=e.screenshots.slice())}return Images.prototype.importXml=function(e){this.boxart=new l;for(var t=0,n=e.images;t<n.length;t++){var i=n[t];getString(i.fileUrl).endsWith("tile.png")&&(this.icon=getString(i.fileUrl)),getString(i.fileUrl).endsWith("banner.png")&&(this.banner=getString(i.fileUrl)),getString(i.fileUrl).endsWith("boxartlg.jpg")&&(this.boxart.large=getString(i.fileUrl)),getString(i.fileUrl).endsWith("boxartsm.jpg")&&(this.boxart.small=getString(i.fileUrl)),getString(i.fileUrl).endsWith("background.jpg")&&(this.background=getString(i.fileUrl))}for(var r=0,o=e.slides;r<o.length;r++){var i=o[r];this.screenshots.push(getString(i.fileUrl))}return this},Images}();t.Images=u;var c=function(){function LiveInfo(e){if(this.validCategories=["0000","0001","0002","0003","3001","3002","3005","3006","3007","3008","3009","3010","3011","3012","3013","3018","3019","3022"],this.parsed=!1,this.categories=[],this.ratingdescriptors=[],e){this.mediatype=getString(e.mediatype),this.gametitlemediaid=getString(e.gametitlemediaid),this.reducedtitle=getString(e.reducedtitle),this.reduceddescription=getString(e.reduceddescription),this.availabilitydate=getString(e.availabilitydate),this.releasedate=getString(e.releasedate),this.ratingid=getString(e.ratingid),this.developer=getString(e.developer),this.publisher=getString(e.publisher),this.newestofferstartdate=getString(e.newestofferstartdate),this.totaloffercount=getString(e.totaloffercount),this.totalsubscriptioncount=getString(e.totalsubscriptioncount),this.titleid=getString(e.titleid),this.effectivetitleid=getString(e.effectivetitleid),this.gamereducedtitle=getString(e.gamereducedtitle),this.fulltitle=getString(e.fulltitle),this.description=getString(e.description),this.ratingaggregate=getString(e.ratingaggregate),this.numberofratings=getString(e.numberofratings);for(var t=0,n=e.categories;t<n.length;t++){var i=n[t];this.validCategories.includes(i.categoryid.toString())&&this.categories.push(new a(i))}for(var l=0,c=e.ratingdescriptors;l<c.length;l++){var d=c[l];this.ratingdescriptors.push(new r(d))}this.images=new u(e.images),this.video=new s(e.video),this.gamecapabilities=new o(e.gamecapabilities),this.parsed=!0}}return LiveInfo.prototype.imagesunity=function(){var e=new u;return e.icon="",e.banner="",e.background="",e.screenshots=[],e.boxart=new l,e.boxart.large=this.titleid?"http://xboxunity.net/api/webui/"+parseInt(this.titleid,10).toString(16):"",e.boxart.small=e.boxart.large,e},LiveInfo.prototype.importXml=function(e){var t=xmlToLiveInfo(e);if(t&&t.feed.entry){var n=t.feed.entry;this.mediatype=getString(n.media.mediaType),this.gametitlemediaid=getString(n.media.gameTitleMediaId),this.reducedtitle=getString(n.media.reducedTitle),this.reduceddescription=getString(n.media.reducedDescription),this.availabilitydate=getString(n.media.availabilityDate),this.releasedate=getString(n.media.releaseDate),this.ratingid=getString(n.media.ratingId),this.developer=getString(n.media.developer),this.publisher=getString(n.media.publisher),this.newestofferstartdate=getString(n.media.newestOfferStartDate),this.totaloffercount=getString(n.media.totalOfferCount),this.totalsubscriptioncount=getString(n.media.totalSubscriptionCount),this.titleid=getString(n.media.titleId),this.effectivetitleid=getString(n.media.effectiveTitleId),this.gamereducedtitle=getString(n.media.gameReducedTitle),this.fulltitle=getString(n.media.fullTitle),this.description=getString(n.media.description),this.ratingaggregate=getString(n.media.ratingAggregate),this.numberofratings=getString(n.media.numberOfRatings);for(var i=0,l=n.categories.category;i<l.length;i++){var c=l[i];this.validCategories.includes(c.categoryId.toString())&&this.categories.push((new a).importXml(c))}if(n.media.ratingDescriptors&&n.media.ratingDescriptors.ratingDescriptor)for(var d=0,p=n.media.ratingDescriptors.ratingDescriptor;d<p.length;d++){var h=p[d];this.ratingdescriptors.push((new r).importXml(h))}if(n.images){var f={images:n.images.image,slides:n.slideShows?n.slideShows.slideShow.image:[]};this.images=(new u).importXml(f)}return n.previewInstances&&(this.video=(new s).importXml(n.previewInstances.videoPreviewInstance[0])),n.media.gameCapabilities&&(this.gamecapabilities=(new o).importXml(n.media.gameCapabilities)),this.parsed=!0,this}return null},LiveInfo}();t.LiveInfo=c},52:function(e,t,n){"use strict";function trigger(e,t){return{type:7,name:e,definitions:t,options:{}}}function animate(e,t){return void 0===t&&(t=null),{type:4,styles:t,timings:e}}function group(e,t){return void 0===t&&(t=null),{type:3,steps:e,options:t}}function sequence(e,t){return void 0===t&&(t=null),{type:2,steps:e,options:t}}function style(e){return{type:6,styles:e,offset:null}}function state(e,t,n){return{type:0,name:e,styles:t,options:n}}function keyframes(e){return{type:5,steps:e}}function transition(e,t,n){return void 0===n&&(n=null),{type:1,expr:e,animation:t,options:n}}function animation(e,t){return void 0===t&&(t=null),{type:8,animation:e,options:t}}function animateChild(e){return void 0===e&&(e=null),{type:9,options:e}}function useAnimation(e,t){return void 0===t&&(t=null),{type:10,animation:e,options:t}}function query(e,t,n){return void 0===n&&(n=null),{type:11,selector:e,animation:t,options:n}}function stagger(e,t){return{type:12,timings:e,animation:t}}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 * @param {?} cb
 * @return {?}
 */
function scheduleMicroTask(e){Promise.resolve(null).then(e)}Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"AnimationBuilder",function(){return i}),n.d(t,"AnimationFactory",function(){return r}),n.d(t,"AUTO_STYLE",function(){return o}),n.d(t,"animate",function(){return animate}),n.d(t,"animateChild",function(){return animateChild}),n.d(t,"animation",function(){return animation}),n.d(t,"group",function(){return group}),n.d(t,"keyframes",function(){return keyframes}),n.d(t,"query",function(){return query}),n.d(t,"sequence",function(){return sequence}),n.d(t,"stagger",function(){return stagger}),n.d(t,"state",function(){return state}),n.d(t,"style",function(){return style}),n.d(t,"transition",function(){return transition}),n.d(t,"trigger",function(){return trigger}),n.d(t,"useAnimation",function(){return useAnimation}),n.d(t,"NoopAnimationPlayer",function(){return a}),n.d(t,"ɵAnimationGroupPlayer",function(){return s}),n.d(t,"ɵPRE_STYLE",function(){return l});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var i=function(){function AnimationBuilder(){}return AnimationBuilder.prototype.build=function(e){},AnimationBuilder}(),r=function(){function AnimationFactory(){}return AnimationFactory.prototype.create=function(e,t){},AnimationFactory}(),o="*",a=function(){function NoopAnimationPlayer(){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=0}return NoopAnimationPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},NoopAnimationPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},NoopAnimationPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},NoopAnimationPlayer.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},NoopAnimationPlayer.prototype.hasStarted=function(){return this._started},NoopAnimationPlayer.prototype.init=function(){},NoopAnimationPlayer.prototype.play=function(){this.hasStarted()||(this.triggerMicrotask(),this._onStart()),this._started=!0},NoopAnimationPlayer.prototype.triggerMicrotask=function(){var e=this;scheduleMicroTask(function(){return e._onFinish()})},NoopAnimationPlayer.prototype._onStart=function(){this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[]},NoopAnimationPlayer.prototype.pause=function(){},NoopAnimationPlayer.prototype.restart=function(){},NoopAnimationPlayer.prototype.finish=function(){this._onFinish()},NoopAnimationPlayer.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},NoopAnimationPlayer.prototype.reset=function(){},NoopAnimationPlayer.prototype.setPosition=function(e){},NoopAnimationPlayer.prototype.getPosition=function(){return 0},NoopAnimationPlayer}(),s=function(){function AnimationGroupPlayer(e){var t=this;this._players=e,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0;var n=0,i=0,r=0,o=this._players.length;0==o?scheduleMicroTask(function(){return t._onFinish()}):this._players.forEach(function(e){e.parentPlayer=t,e.onDone(function(){++n>=o&&t._onFinish()}),e.onDestroy(function(){++i>=o&&t._onDestroy()}),e.onStart(function(){++r>=o&&t._onStart()})}),this.totalTime=this._players.reduce(function(e,t){return Math.max(e,t.totalTime)},0)}return AnimationGroupPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},AnimationGroupPlayer.prototype.init=function(){this._players.forEach(function(e){return e.init()})},AnimationGroupPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},AnimationGroupPlayer.prototype._onStart=function(){this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0)},AnimationGroupPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},AnimationGroupPlayer.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},AnimationGroupPlayer.prototype.hasStarted=function(){return this._started},AnimationGroupPlayer.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this._players.forEach(function(e){return e.play()})},AnimationGroupPlayer.prototype.pause=function(){this._players.forEach(function(e){return e.pause()})},AnimationGroupPlayer.prototype.restart=function(){this._players.forEach(function(e){return e.restart()})},AnimationGroupPlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(e){return e.finish()})},AnimationGroupPlayer.prototype.destroy=function(){this._onDestroy()},AnimationGroupPlayer.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this._players.forEach(function(e){return e.destroy()}),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},AnimationGroupPlayer.prototype.reset=function(){this._players.forEach(function(e){return e.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},AnimationGroupPlayer.prototype.setPosition=function(e){var t=e*this.totalTime;this._players.forEach(function(e){var n=e.totalTime?Math.min(1,t/e.totalTime):1;e.setPosition(n)})},AnimationGroupPlayer.prototype.getPosition=function(){var e=0;return this._players.forEach(function(t){var n=t.getPosition();e=Math.min(n,e)}),e},Object.defineProperty(AnimationGroupPlayer.prototype,"players",{get:function(){return this._players},enumerable:!0,configurable:!0}),AnimationGroupPlayer.prototype.beforeDestroy=function(){this.players.forEach(function(e){e.beforeDestroy&&e.beforeDestroy()})},AnimationGroupPlayer}(),l="!"},53:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function AppSettings(){}return AppSettings.globalInterval=1e3,AppSettings}();t.AppSettings=i},54:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function DataCacheService(){this.cache={_generic:{}}}return DataCacheService.prototype.set=function(e,t,n){n=n||"_generic",n in this.cache||(this.cache[n]={}),this.cache[n][e]=t},DataCacheService.prototype.remove=function(e,t){(t=t||"_generic")in this.cache&&delete this.cache[t][e]},DataCacheService.prototype.get=function(e,t){if((t=t||"_generic")in this.cache)return this.cache[t][e]},DataCacheService.prototype.exists=function(e,t){return(t=t||"_generic")in this.cache&&e in this.cache[t]},DataCacheService=__decorate([i.Injectable(),__metadata("design:paramtypes",[])],DataCacheService)}();t.DataCacheService=r},549:function(e,t,n){var i,r,o;!function(n,a){"use strict";r=[],i=a,void 0!==(o="function"==typeof i?i.apply(t,r):i)&&(e.exports=o)}(0,function(e){"use strict";return function(t){function initConfigDefaults(){t.arrayAccessForm=t.arrayAccessForm||"none",t.emptyNodeForm=t.emptyNodeForm||"text",t.attributeConverters=t.attributeConverters||[],t.datetimeAccessFormPaths=t.datetimeAccessFormPaths||[],t.arrayAccessFormPaths=t.arrayAccessFormPaths||[],void 0===t.enableToStringFunc&&(t.enableToStringFunc=!0),void 0===t.skipEmptyTextNodesForObj&&(t.skipEmptyTextNodesForObj=!0),void 0===t.stripWhitespaces&&(t.stripWhitespaces=!0),void 0===t.useDoubleQuotes&&(t.useDoubleQuotes=!0),void 0===t.ignoreRoot&&(t.ignoreRoot=!1),void 0===t.escapeMode&&(t.escapeMode=!0),void 0===t.attributePrefix&&(t.attributePrefix="_"),void 0===t.selfClosingElements&&(t.selfClosingElements=!0),void 0===t.keepCData&&(t.keepCData=!1)}function initRequiredPolyfills(){function pad(e){var t=String(e);return 1===t.length&&(t="0"+t),t}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|^\n+|(\s|\n)+$/g,"")}),"function"!=typeof Date.prototype.toISOString&&(Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+pad(this.getUTCMonth()+1)+"-"+pad(this.getUTCDate())+"T"+pad(this.getUTCHours())+":"+pad(this.getUTCMinutes())+":"+pad(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"})}function getDomNodeLocalName(e){var t=e.localName;return null==t&&(t=e.baseName),null!=t&&""!==t||(t=e.nodeName),t}function getDomNodeNamespacePrefix(e){return e.prefix}function escapeXmlChars(e){return"string"==typeof e?e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"):e}function unescapeXmlChars(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&amp;/g,"&")}function ensureProperArrayAccessForm(e,n,i){switch(t.arrayAccessForm){case"property":e[n]instanceof Array?e[n+"_asArray"]=e[n]:e[n+"_asArray"]=[e[n]]}if(!(e[n]instanceof Array)&&t.arrayAccessFormPaths.length>0){for(var r=!1,o=0;o<t.arrayAccessFormPaths.length;o++){var a=t.arrayAccessFormPaths[o];if("string"==typeof a){if(a===i){r=!0;break}}else if(a instanceof RegExp){if(a.test(i)){r=!0;break}}else if("function"==typeof a&&a(n,i)){r=!0;break}}r&&(e[n]=[e[n]])}}function xmlDateTimeToDate(e){var t=e.split(/[-T:+Z]/g),n=new Date(t[0],t[1]-1,t[2]),i=t[5].split(".");if(n.setHours(t[3],t[4],i[0]),i.length>1&&n.setMilliseconds(i[1]),t[6]&&t[7]){var r=60*t[6]+Number(t[7]);r=0+("-"==(/\d\d-\d\d:\d\d$/.test(e)?"-":"+")?-1*r:r),n.setMinutes(n.getMinutes()-r-n.getTimezoneOffset())}else-1!==e.indexOf("Z",e.length-1)&&(n=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())));return n}function convertToDateIfRequired(e,n,i){if(t.datetimeAccessFormPaths.length>0)for(var r=i.split(".#")[0],o=0;o<t.datetimeAccessFormPaths.length;o++){var a=t.datetimeAccessFormPaths[o];if("string"==typeof a){if(a===r)return xmlDateTimeToDate(e)}else if(a instanceof RegExp){if(a.test(r))return xmlDateTimeToDate(e)}else if("function"==typeof a&&a(r))return xmlDateTimeToDate(e)}return e}function deserializeRootElementChildren(e){for(var n={},r=e.childNodes,o=0;o<r.length;o++){var a=r.item(o);if(a.nodeType===i.ELEMENT_NODE){var s=getDomNodeLocalName(a);t.ignoreRoot?n=deserializeDomChildren(a,s):n[s]=deserializeDomChildren(a,s)}}return n}function deserializeElementChildren(e,n){var r={};r.__cnt=0;for(var o=e.childNodes,a=0;a<o.length;a++){var s=o.item(a),l=getDomNodeLocalName(s);s.nodeType!==i.COMMENT_NODE&&(r.__cnt++,null==r[l]?(r[l]=deserializeDomChildren(s,n+"."+l),ensureProperArrayAccessForm(r,l,n+"."+l)):(r[l]instanceof Array||(r[l]=[r[l]],ensureProperArrayAccessForm(r,l,n+"."+l)),r[l][r[l].length]=deserializeDomChildren(s,n+"."+l)))}for(var u=0;u<e.attributes.length;u++){var c=e.attributes.item(u);r.__cnt++;for(var d=c.value,p=0;p<t.attributeConverters.length;p++){var h=t.attributeConverters[p];h.test.call(null,c.name,c.value)&&(d=h.convert.call(null,c.name,c.value))}r[t.attributePrefix+c.name]=d}var f=getDomNodeNamespacePrefix(e);return f&&(r.__cnt++,r.__prefix=f),r["#text"]&&(r.__text=r["#text"],r.__text instanceof Array&&(r.__text=r.__text.join("\n")),t.escapeMode&&(r.__text=unescapeXmlChars(r.__text)),t.stripWhitespaces&&(r.__text=r.__text.trim()),delete r["#text"],"property"===t.arrayAccessForm&&delete r["#text_asArray"],r.__text=convertToDateIfRequired(r.__text,"#text",n+".#text")),r.hasOwnProperty("#cdata-section")&&(r.__cdata=r["#cdata-section"],delete r["#cdata-section"],"property"===t.arrayAccessForm&&delete r["#cdata-section_asArray"]),1===r.__cnt&&r.__text?r=r.__text:0===r.__cnt&&"text"===t.emptyNodeForm?r="":r.__cnt>1&&void 0!==r.__text&&t.skipEmptyTextNodesForObj&&(t.stripWhitespaces&&""===r.__text||""===r.__text.trim())&&delete r.__text,delete r.__cnt,t.keepCData||r.hasOwnProperty("__text")||!r.hasOwnProperty("__cdata")?(t.enableToStringFunc&&(r.__text||r.__cdata)&&(r.toString=function(){return(this.__text?this.__text:"")+(this.__cdata?this.__cdata:"")}),r):r.__cdata?r.__cdata:""}function deserializeDomChildren(e,t){return e.nodeType===i.DOCUMENT_NODE?deserializeRootElementChildren(e):e.nodeType===i.ELEMENT_NODE?deserializeElementChildren(e,t):e.nodeType===i.TEXT_NODE||e.nodeType===i.CDATA_SECTION_NODE?e.nodeValue:null}function serializeStartTag(e,n,i,r){var o="<"+(e&&e.__prefix?e.__prefix+":":"")+n;if(i)for(var a=0;a<i.length;a++){var s=i[a],l=e[s];t.escapeMode&&(l=escapeXmlChars(l)),o+=" "+s.substr(t.attributePrefix.length)+"=",t.useDoubleQuotes?o+='"'+l+'"':o+="'"+l+"'"}return o+=r?" />":">"}function serializeEndTag(e,t){return"</"+(e&&e.__prefix?e.__prefix+":":"")+t+">"}function endsWith(e,t){return-1!==e.indexOf(t,e.length-t.length)}function isSpecialProperty(e,n){return!!("property"===t.arrayAccessForm&&endsWith(n.toString(),"_asArray")||0===n.toString().indexOf(t.attributePrefix)||0===n.toString().indexOf("__")||e[n]instanceof Function)}function getDataElementCount(e){var t=0;if(e instanceof Object)for(var n in e)isSpecialProperty(e,n)||t++;return t}function getDataAttributeNames(e){var n=[];if(e instanceof Object)for(var i in e)-1===i.toString().indexOf("__")&&0===i.toString().indexOf(t.attributePrefix)&&n.push(i);return n}function serializeComplexTextNodeContents(e){var n="";return e.__cdata&&(n+="<![CDATA["+e.__cdata+"]]>"),e.__text&&(t.escapeMode?n+=escapeXmlChars(e.__text):n+=e.__text),n}function serializeTextNodeContents(e){var n="";return e instanceof Object?n+=serializeComplexTextNodeContents(e):null!==e&&(t.escapeMode?n+=escapeXmlChars(e):n+=e),n}function serializeArray(e,t,n){var i="";if(0===e.length)i+=serializeStartTag(e,t,n,!0);else for(var r=0;r<e.length;r++)i+=serializeJavaScriptObject(e[r],t,getDataAttributeNames(e[r]));return i}function serializeJavaScriptObject(e,n,i){var r="";if(void 0!==e&&null!==e&&""!==e||!t.selfClosingElements)if("object"==typeof e)if("[object Array]"===Object.prototype.toString.call(e))r+=serializeArray(e,n,i);else if(e instanceof Date)r+=serializeStartTag(e,n,i,!1),r+=e.toISOString(),r+=serializeEndTag(e,n);else{var o=getDataElementCount(e);o>0||e.__text||e.__cdata?(r+=serializeStartTag(e,n,i,!1),r+=serializeJavaScriptObjectChildren(e),r+=serializeEndTag(e,n)):t.selfClosingElements?r+=serializeStartTag(e,n,i,!0):(r+=serializeStartTag(e,n,i,!1),r+=serializeEndTag(e,n))}else r+=serializeStartTag(e,n,i,!1),r+=serializeTextNodeContents(e),r+=serializeEndTag(e,n);else r+=serializeStartTag(e,n,i,!0);return r}function serializeJavaScriptObjectChildren(e){var t="";if(getDataElementCount(e)>0)for(var n in e)if(!isSpecialProperty(e,n)){var i=e[n],r=getDataAttributeNames(i);t+=serializeJavaScriptObject(i,n,r)}return t+=serializeTextNodeContents(e)}function parseXml(t){if(void 0===t)return null;if("string"!=typeof t)return null;var n=null,i=null;if(e)n=new e,i=n.parseFromString(t,"text/xml");else if(window&&window.DOMParser){n=new window.DOMParser;var r=null,o=window.ActiveXObject||"ActiveXObject"in window;if(!o)try{r=n.parseFromString("INVALID","text/xml").childNodes[0].namespaceURI}catch(e){r=null}try{i=n.parseFromString(t,"text/xml"),null!==r&&i.getElementsByTagNameNS(r,"parsererror").length>0&&(i=null)}catch(e){i=null}}else 0===t.indexOf("<?")&&(t=t.substr(t.indexOf("?>")+2)),i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(t);return i}var n="3.1.1";t=t||{},initConfigDefaults(),initRequiredPolyfills();var i={ELEMENT_NODE:1,TEXT_NODE:3,CDATA_SECTION_NODE:4,COMMENT_NODE:8,DOCUMENT_NODE:9};this.asArray=function(e){return void 0===e||null===e?[]:e instanceof Array?e:[e]},this.toXmlDateTime=function(e){return e instanceof Date?e.toISOString():"number"==typeof e?new Date(e).toISOString():null},this.asDateTime=function(e){return"string"==typeof e?xmlDateTimeToDate(e):e},this.xml2dom=function(e){return parseXml(e)},this.dom2js=function(e){return deserializeDomChildren(e,null)},this.js2dom=function(e){return parseXml(this.js2xml(e))},this.xml2js=function(e){var t=parseXml(e);return null!=t?this.dom2js(t):null},this.js2xml=function(e){return serializeJavaScriptObjectChildren(e)},this.getVersion=function(){return n}}})},55:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(20),o=n(6),a=n(23),s=n(84),l=function(){function DataService(e){this.http=e,this.urls={get:{systemInfo:"/system",pluginInfo:"/plugin",achievementInfo:"/achievement",achievementAquired:"/achievement/player",liveInfo:"/title/live/cache",profileInfo:"/profile",titleInfo:"/title",titleUserData:"/title/userdata",memory:"/memory",threads:"/thread",threadsState:"/thread/state",temperature:"/temperature",systemLinkInfo:"/systemlink",systemLinkBandwidth:"/systemlink/bandwidth",multiDisc:"/multidisc",screencapture:"/screencapture/meta",screencaptures:"/screencapture/meta/list",dashlaunchInfo:"/dashlaunch",smc:"/smc",updateNotification:"/update/notification"},post:{liveInfo:"/title/live/cache",titleLaunch:"/title/launch",threadsState:"/thread/state"},delete:{screencapture:"/screencapture"}},this.cache={get:{},post:{},delete:{}},this.errors=new o.Subject,this.refreshing=new r.ReplaySubject,this.headers=new o.Subject,this.busy={get:{},post:{},delete:{}}}return DataService.prototype.get=function(e,t){return t in this.cache[e]||(this.cache[e][t]=new r.ReplaySubject(1)),e in this.urls&&t in this.urls[e]||this.errors.next(new s.DataServiceError(e,t,{status:400,statusText:"Bad request",ok:!1})),this.cache[e][t]},DataService.prototype.await=function(e,t,n){return e in this.urls&&t in this.urls[e]?"get"===e&&e in this.cache&&t in this.cache[e]&&("get"!==e||"screencapture"!==t||n)||this.refresh(e,t,n):this.errors.next(new s.DataServiceError(e,t,{status:400,statusText:"Bad request",ok:!1})),this.get(e,t).asObservable()},DataService.prototype.refresh=function(e,t,n){var i=this,r=this.get(e,t);e in this.urls&&t in this.urls[e]?this.busy[e][t]&&"get"===e||(this.busy[e][t]=!0,this.refreshing.next({method:e,request:t,busy:this.busy[e][t]}),this.http[e](this.urls[e][t],n).map(function(e){return i.headers.next(e.headers),e.text()?e.json():null}).finally(function(){i.busy[e][t]=!1,i.refreshing.next({method:e,request:t,busy:i.busy[e][t]}),("get"!==e||"get"===e&&"screencapture"===t&&!n)&&delete i.cache[e][t]}).subscribe(function(e){r.next(e)},function(n){r.next(null),i.headers.next(n.headers),i.errors.next(new s.DataServiceError(e,t,n))})):this.errors.next(new s.DataServiceError(e,t,{status:400,statusText:"Bad request",ok:!1}))},DataService.prototype.refreshAll=function(){var e=this;Object.keys(this.cache).map(function(t){Object.keys(e.cache[t]).map(function(n){e.refresh(t,n)})})},DataService.prototype.clearAll=function(){var e=this;Object.keys(this.cache).map(function(t){Object.keys(e.cache[t]).map(function(n){e.get(t,n).next(null)})})},DataService=__decorate([i.Injectable(),__metadata("design:paramtypes",[a.AuthHttp])],DataService)}();t.DataService=l},550:function(e,t,n){"use strict";function main(){return r.platformBrowserDynamic().bootstrapModule(o.AppModule).then(function(e){return e})}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(51),o=n(210);i.enableProdMode(),t.main=main,"complete"===document.readyState?main():document.addEventListener("DOMContentLoaded",main)},56:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function TemperatureConverterPipe(){}return TemperatureConverterPipe.prototype.transform=function(e,t){return"number"!=typeof e||"string"!=typeof t||"C"!==t&&"F"!==t?e:"C"===t?(e-32)/1.8:1.8*e+32},TemperatureConverterPipe=__decorate([i.Pipe({name:"myTemperatureConverter"})],TemperatureConverterPipe)}();t.TemperatureConverterPipe=r},81:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(20),a=(n.n(o),n(6)),s=(n.n(a),n(116));n.n(s);n.d(t,"MockConnection",function(){return l}),n.d(t,"MockBackend",function(){return u});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var l=function(){function MockConnection(e){this.response=s.take.call(new o.ReplaySubject(1),1),this.readyState=r.ReadyState.Open,this.request=e}return MockConnection.prototype.mockRespond=function(e){if(this.readyState===r.ReadyState.Done||this.readyState===r.ReadyState.Cancelled)throw new Error("Connection has already been resolved");this.readyState=r.ReadyState.Done,this.response.next(e),this.response.complete()},MockConnection.prototype.mockDownload=function(e){},MockConnection.prototype.mockError=function(e){this.readyState=r.ReadyState.Done,this.response.error(e)},MockConnection}(),u=function(){function MockBackend(){var e=this;this.connectionsArray=[],this.connections=new a.Subject,this.connections.subscribe(function(t){return e.connectionsArray.push(t)}),this.pendingConnections=new a.Subject}return MockBackend.prototype.verifyNoPendingRequests=function(){var e=0;if(this.pendingConnections.subscribe(function(t){return e++}),e>0)throw new Error(e+" pending connections to be resolved")},MockBackend.prototype.resolveAllConnections=function(){this.connections.subscribe(function(e){return e.readyState=4})},MockBackend.prototype.createConnection=function(e){if(!(e&&e instanceof r.Request))throw new Error("createConnection requires an instance of Request, got "+e);var t=new l(e);return this.connections.next(t),t},MockBackend}();u.decorators=[{type:i.Injectable}],u.ctorParameters=function(){return[]}},82:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(22),o=n(25),a=function(){function AuthenticationGuard(e,t){this.router=e,this.auth=t}return AuthenticationGuard.prototype.canActivate=function(){return this.auth.isLoggedIn()||this.router.navigate(["/login"]),this.auth.isLoggedIn()},AuthenticationGuard=__decorate([i.Injectable(),__metadata("design:paramtypes",[r.Router,o.AuthenticationService])],AuthenticationGuard)}();t.AuthenticationGuard=a},83:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(19),a=n(56),s=n(250),l=n(240),u=n(12),c=n(53),d=function(e){function ConsoleComponent(t){var n=e.call(this)||this;return n.dataService=t,n.pluginVersionTypes=l.VersionType,n.autoUpdateInfo=!1,n.temperatureConverter=new a.TemperatureConverterPipe,n.maxrate=new s.Speed,n.timers={},n}return __extends(ConsoleComponent,e),ConsoleComponent.prototype.getMemory=function(e){var t=this;return this.dataService.await("get","memory").subscribe(function(e){return t.memory=e},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","memory")},e)},ConsoleComponent.prototype.getTemperature=function(e){var t=this;return this.dataService.await("get","temperature").subscribe(function(e){return t.temperature=e},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","temperature")},e)},ConsoleComponent.prototype.getSystemLink=function(){var e=this;this.dataService.await("get","systemLinkInfo").subscribe(function(t){return e.systemLink=t},function(t){return console.log(e,t)})},ConsoleComponent.prototype.getSystemLinkBandwidth=function(e){var t=this;return this.dataService.await("get","systemLinkBandwidth").subscribe(function(e){t.systemLinkBandwidth=e,e&&(t.maxrate.upstream=Math.max(t.maxrate.upstream,t.systemLinkBandwidth.rate.upstream),t.maxrate.downstream=Math.max(t.maxrate.downstream,t.systemLinkBandwidth.rate.downstream))},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","systemLinkBandwidth")},e)},ConsoleComponent.prototype.getPlugin=function(){var e=this;this.dataService.await("get","pluginInfo").subscribe(function(t){return e.plugin=t},function(t){return console.log(e,t)})},ConsoleComponent.prototype.getSMC=function(e){var t=this;return this.dataService.await("get","smc").subscribe(function(e){t.smc=e,e?(t.maxtemp=Math.max(t.smc.temperature.max.cpu,t.smc.temperature.max.gpu,t.smc.temperature.max.memory),t.smc.temperature.celsius||(t.maxtemp=t.temperatureConverter.transform(t.maxtemp,"C")),t.maxtemp+=3):t.maxtemp=null},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","smc")},e)},ConsoleComponent.prototype.getMultiDisc=function(){var e=this;this.dataService.await("get","multiDisc").subscribe(function(t){return e.multiDisc=t},function(t){return console.log(e,t)})},ConsoleComponent.prototype.getSystem=function(){var e=this;this.dataService.await("get","systemInfo").subscribe(function(t){return e.system=t},function(t){return console.log(e,t)})},ConsoleComponent.prototype.getThreads=function(e){var t=this;return this.dataService.await("get","threads").subscribe(function(e){return t.threads=e},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","threads")},e)},ConsoleComponent.prototype.getThreadsState=function(e){var t=this;return this.dataService.await("get","threadsState").subscribe(function(e){return t.currentThreadsState=e?e.state:e},function(e){return console.log(t,e)}),window.setInterval(function(){return t.dataService.refresh("get","threadsState")},e)},ConsoleComponent.prototype.toggleThreadsState=function(){var e=this,t=new r.URLSearchParams;t.append("suspend",this.currentThreadsState?"0":"1"),this.currentThreadsState=null,this.dataService.await("post","threadsState",t).subscribe(function(){return e.dataService.refresh("get","threadsState")},function(e){return console.log("err -------------\x3e",e)})},ConsoleComponent.prototype.getDashLaunch=function(){var e=this;this.dataService.await("get","dashlaunchInfo").subscribe(function(t){e.dashlaunch=t,e.dashlaunchCategories=[],e.dashlaunch&&e.dashlaunch.options.forEach(function(t){e.dashlaunchCategories.includes(t.category)||e.dashlaunchCategories.push(t.category)})},function(t){return console.log(e,t)})},ConsoleComponent.prototype.ngOnInit=function(){var e=this;this.maxrate.upstream=10240,this.maxrate.downstream=10240,this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get"].includes(e.method)}).filter(function(e){return["systemLinkInfo","pluginInfo","multiDiscInfo","systemInfo","dashlaunchInfo"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getSystemLink(),this.getPlugin(),this.getMultiDisc(),this.getSystem(),this.getDashLaunch(),this.timers.smc=this.getSMC(c.AppSettings.globalInterval),this.timers.bandwidth=this.getSystemLinkBandwidth(c.AppSettings.globalInterval),this.timers.memory=this.getMemory(c.AppSettings.globalInterval),this.timers.temperature=this.getTemperature(c.AppSettings.globalInterval),this.timers.threads=this.getThreads(c.AppSettings.globalInterval),this.timers.threadsState=this.getThreadsState(c.AppSettings.globalInterval)},ConsoleComponent.prototype.ngOnDestroy=function(){var e=this;Object.keys(this.timers).map(function(t){return window.clearInterval(e.timers[t])})},ConsoleComponent=__decorate([i.Component({selector:"my-console",template:n(264),styles:[n(254)]}),__metadata("design:paramtypes",[u.LiveDataService])],ConsoleComponent)}(o.Loader);t.ConsoleComponent=d},84:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function DataServiceError(e,t,n){this.method=e,this.request=t,this.error=n}return DataServiceError}();t.DataServiceError=i},85:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(19),o=n(12),a=n(39),s=function(e){function DetailsComponent(t){var n=e.call(this)||this;return n.dataService=t,n}return __extends(DetailsComponent,e),DetailsComponent.prototype.getLiveInfo=function(){var e=this;this.dataService.await("get","liveInfo").subscribe(function(t){return e.liveinfo=t?new a.LiveInfo(t):null},function(t){console.log(e,t),e.liveinfo=null})},DetailsComponent.prototype.ngOnInit=function(){var e=this;this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get","post"].includes(e.method)}).filter(function(e){return["liveInfo","liveXML"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getLiveInfo()},DetailsComponent=__decorate([i.Component({selector:"my-details",template:n(265),styles:[n(255)]}),__metadata("design:paramtypes",[o.LiveDataService])],DetailsComponent)}(r.Loader);t.DetailsComponent=s},86:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(19),o=n(12),a=n(39),s=n(53),l=function(e){function HomeComponent(t){var n=e.call(this)||this;return n.dataService=t,n}return __extends(HomeComponent,e),HomeComponent.prototype.getLiveInfo=function(){var e=this;this.dataService.await("get","liveInfo").subscribe(function(t){return e.liveinfo=t?new a.LiveInfo(t):null},function(t){console.log(e,t),e.liveinfo=null})},HomeComponent.prototype.getTitleInfo=function(e){var t=this;return this.dataService.await("get","titleInfo").distinctUntilChanged(function(e,t){return t?t.equals(e):t===e}).subscribe(function(e){t.titleinfo=e},function(e){console.log(t,e),t.titleinfo=null}),window.setInterval(function(){return t.dataService.refresh("get","titleInfo")},e)},HomeComponent.prototype.ngOnInit=function(){var e=this;this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get","post"].includes(e.method)}).filter(function(e){return["liveInfo","liveXML"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getLiveInfo(),this.titleInfoTimer=this.getTitleInfo(s.AppSettings.globalInterval)},HomeComponent.prototype.ngOnDestroy=function(){window.clearInterval(this.titleInfoTimer)},HomeComponent=__decorate([i.Component({selector:"my-home",template:n(266),styles:[n(256)]}),__metadata("design:paramtypes",[o.LiveDataService])],HomeComponent)}(r.Loader);t.HomeComponent=l},87:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(19),a=n(12);t.ExecTypes={none:-1,xex:0,xbe:1,xexcon:2,xbecon:3,xnacon:4};var s=function(e){function LauncherComponent(t){var n=e.call(this)||this;return n.dataService=t,n}return __extends(LauncherComponent,e),LauncherComponent.prototype.getPlugin=function(){var e=this;this.dataService.await("get","pluginInfo").subscribe(function(t){return e.plugin=t},function(t){return console.log(e,t)})},LauncherComponent.prototype.ngOnInit=function(){var e=this;this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get","post"].includes(e.method)}).filter(function(e){return["pluginInfo","titleLaunch"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getPlugin()},LauncherComponent.prototype.launch=function(){if(this.plugin){var e=this.plugin.path.launcher.split("\\"),n=e.pop(),i=n.substring(n.lastIndexOf(".")+1),o=i===n?t.ExecTypes.xexcon:t.ExecTypes[i],a=new r.URLSearchParams;a.append("path",e.join("\\")),a.append("exec",n),a.append("type",o),this.dataService.await("post","titleLaunch",a).subscribe(function(e){},function(e){return console.log("launcher err-------------\x3e",e)})}},LauncherComponent=__decorate([i.Component({selector:"my-launcher",template:n(267),styles:[n(257)]}),__metadata("design:paramtypes",[a.LiveDataService])],LauncherComponent)}(o.Loader);t.LauncherComponent=s},88:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(22),o=n(19),a=n(25),s=function(e){function LoginComponent(t,n){var i=e.call(this)||this;return i.authenticationService=t,i.activatedRoute=n,i.error=0,i}return __extends(LoginComponent,e),LoginComponent.prototype.ngOnInit=function(){var e=this;this.params=this.activatedRoute.queryParams.subscribe(function(t){t.logout&&e.logout()}),this.authenticationService.refreshing.distinctUntilChanged().filter(function(e){return["post"].includes(e.method)}).filter(function(e){return["authenticate"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.authenticationService.loggedInStatus().subscribe(function(t){return e.error=t})},LoginComponent.prototype.ngOnDestroy=function(){this.params.unsubscribe()},LoginComponent.prototype.login=function(){this.authenticationService.login(this.username,this.password)},LoginComponent.prototype.logout=function(){this.authenticationService.logout()},LoginComponent=__decorate([i.Component({selector:"my-login",template:n(269),styles:[n(259)]}),__metadata("design:paramtypes",[a.AuthenticationService,r.ActivatedRoute])],LoginComponent)}(o.Loader);t.LoginComponent=s},89:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(11),o=n(19),a=n(12),s=function(e){function ScreencapturesComponent(t){var n=e.call(this)||this;return n.dataService=t,n.selection=new Set,n}return __extends(ScreencapturesComponent,e),ScreencapturesComponent.prototype.getScreencaptures=function(){var e=this;this.dataService.await("get","screencaptures").subscribe(function(t){e.list=t,e.list&&e.list.sort(function(e,t){return e.timestamp>t.timestamp?-1:1}),e.selected&&e.list&&e.list.find(function(t){return t.filename===e.selected})||(e.selected=null)},function(t){return console.log(e,t)})},ScreencapturesComponent.prototype.getUserData=function(){var e=this;this.dataService.await("get","titleUserData").subscribe(function(t){e.userdata=t,e.userdata&&e.userdata.notes&&Object.keys(e.userdata.notes).map(function(t){t.startsWith("getScreenCaptureImage")&&(e.userdata.notes[t.replace("getScreenCaptureImage?uuid=","")]=e.userdata.notes[t],delete e.userdata.notes[t])})},function(t){return console.log(e,t)})},ScreencapturesComponent.prototype.deleteScreencaptures=function(e){var t=this;if(0!==e.size){var n=e.values().next().value;e.delete(n);var i=new r.URLSearchParams;i.append("uuid",n),this.dataService.await("delete","screencapture",new r.RequestOptions({search:i})).subscribe(function(){e.size>0?t.deleteScreencaptures(e):t.dataService.refresh("get","screencaptures")},function(e){return console.log("err -------------\x3e",e)})}},ScreencapturesComponent.prototype.takeScreencapture=function(){var e=this;this.dataService.await("get","screencapture").subscribe(function(t){e.list.unshift(t),e.loading=!0,e.selected=t.filename},function(e){return console.log("err -------------\x3e",e)})},ScreencapturesComponent.prototype.selectAll=function(e){var t=this;e?this.list.forEach(function(e){t.selection.has(e.filename)||t.selection.add(e.filename)}):this.selection.clear()},ScreencapturesComponent.prototype.ngOnInit=function(){var e=this;this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get","delete"].includes(e.method)}).filter(function(e){return["screencaptures","screencapture","titleUserData"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getUserData(),this.getScreencaptures()},ScreencapturesComponent=__decorate([i.Component({selector:"my-screencaptures",template:n(271),styles:[n(261)]}),__metadata("design:paramtypes",[a.LiveDataService])],ScreencapturesComponent)}(o.Loader);t.ScreencapturesComponent=s},90:function(e,t,n){"use strict";function __export(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),__export(n(242)),String.prototype.toCamelCase=function(){return this.replace(/\s+|[-_\.\/]+/g," ").trim().replace(/(?:^\w|[A-Z]|\b\w)/g,function(e,t){return 0===t?e.toLowerCase():e.toUpperCase()}).replace(/\s+/g,"")},String.prototype.toHash=function(){for(var e=5381,t=this.length;t;)e=33*e^this.charCodeAt(--t);return e>>>0},Array.prototype.includes=function(e){return this.indexOf(e)>=0},Object.defineProperty(Object.prototype,"equals",{value:function(e){var t=this;if(!e||"object"!=typeof e)return!1;var n=!0;return Object.keys(this).map(function(i){return n=n&&("object"==typeof t[i]?t[i].equals(e[i]):t[i]===e[i])}),n},enumerable:!1})},91:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=function(){function Parameterized(){this.param="",this.option=""}return Object.defineProperty(Parameterized.prototype,"info",{get:function(){return this.param+"."+this.option},set:function(e){var t=e.split(".");this.param=t[0]||"",this.option=t[1]||""},enumerable:!0,configurable:!0}),__decorate([i.Input(),__metadata("design:type",String),__metadata("design:paramtypes",[String])],Parameterized.prototype,"info",null),Parameterized}();t.Parameterized=r},92:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),r=n(19),o=n(224),a=n(12),s=function(e){function UsersComponent(t){var n=e.call(this)||this;return n.dataService=t,n.achievementTypes=o.AchievementTypes,n.hashes={},n}return __extends(UsersComponent,e),UsersComponent.prototype.getProfiles=function(){var e=this;this.dataService.await("get","profileInfo").subscribe(function(t){e.profiles=t,e.aquired&&e.achievements&&e.profiles&&e.applyAquiredAchievements()},function(t){return console.log(e,t)})},UsersComponent.prototype.getAchievements=function(){var e=this;this.dataService.await("get","achievementInfo").subscribe(function(t){if(t)for(var n=0,i=t;n<i.length;n++){var r=i[n];e.hashes[r.id]=JSON.stringify(r).toHash()}e.achievements=t,e.aquired&&e.achievements&&e.profiles&&e.applyAquiredAchievements()},function(t){return console.log(e,t)})},UsersComponent.prototype.getAquired=function(){var e=this;this.dataService.await("get","achievementAquired").subscribe(function(t){e.aquired=t,e.aquired&&e.achievements&&e.profiles&&e.applyAquiredAchievements()},function(t){return console.log(e,t)})},UsersComponent.prototype.applyAquiredAchievements=function(){for(var e={},t=0,n=this.aquired;t<n.length;t++){var i=n[t];e[i.id]=i.player}for(var r=0,o=this.achievements;r<o.length;r++){var i=o[r];if(i.id in e){i.player=e[i.id];for(var a=0;a<this.profiles.length;++a)this.profiles[a].aquiredCount||(this.profiles[a].aquiredCount=0,this.profiles[a].aquiredScore=0),i.player[a]&&(this.profiles[a].aquiredCount+=1,this.profiles[a].aquiredScore+=i.cred)}else i.player=[!1,!1,!1,!1]}},UsersComponent.prototype.isUnlocked=function(e,t){var n=!1;if(!("player"in e))return n;if(!0===t){if(!this.profiles)return n;for(var i=0,r=this.profiles;i<r.length;i++){var o=r[i];o.signedin&&(n=n||e.player[o.index])}return n}for(var a=0,s=e.player;a<s.length;a++){var o=s[a];n=n||o}return n},UsersComponent.prototype.ngOnInit=function(){var e=this;this.dataService.refreshing.distinctUntilChanged().filter(function(e){return["get"].includes(e.method)}).filter(function(e){return["profileInfo","achievementInfo","achievementAquired"].includes(e.request)}).subscribe(function(t){return e.loading=t.busy}),this.getProfiles(),this.getAchievements(),this.getAquired()},UsersComponent=__decorate([i.Component({selector:"my-users",template:n(272),styles:[n(262)]}),__metadata("design:paramtypes",[a.LiveDataService])],UsersComponent)}(r.Loader);t.UsersComponent=s}},[550]);
//# sourceMappingURL=app.js.map